質問するログイン新規登録

質問編集履歴

1

コードの追加

2019/07/29 01:08

投稿

soma21
soma21

スコア18

title CHANGED
File without changes
body CHANGED
@@ -22,4 +22,62 @@
22
22
  ```
23
23
  これで実行したところ、問題番号が変わっても1つ前の問題番号のスコアが反映されて人数がおかしくなります。
24
24
  どのように書けば、HashMap<問題番号, <スコア, 人数>>を作ることができるのでしょうか。
25
- 教えていただきたいです。
25
+ 教えていただきたいです。
26
+
27
+ ↓追記です
28
+
29
+ ```java
30
+ import java.io.*;
31
+ import java.util.HashMap;
32
+ import java.util.Map;
33
+ import java.util.Objects;
34
+ import java.util.ArrayList;
35
+ public class ScoreAnalyzer2{
36
+ public static void main(String args[]) throws IOException{ //mainメソッド
37
+ ScoreAnalyzer2 app = new ScoreAnalyzer2();
38
+ app.run(args);
39
+ }
40
+ void run(String args[]) throws IOException{ //runメソッド
41
+ HashMap<String, HashMap<String, Integer>> map = new HashMap<>(); //mapの宣言
42
+ HashMap<String, Integer> map2 = new HashMap<>(); //スコアと0
43
+
44
+ ArrayList<String> list = new ArrayList<>();
45
+ File file = new File(args[0]); //引数のファイルの実体を作成
46
+ BufferedReader in = new BufferedReader(new FileReader(file));
47
+ String line;
48
+ while((line = in.readLine()) != null){ //一行ずつファイルを読みこむ
49
+ String[] array = line.split(","); //1行をコンマで区切る
50
+ if(!map.containsKey(array[2]) || !map.get(array[2]).containsKey(array[4])){
51
+ HashMap<String, Integer> scores = new HashMap<>();
52
+ scores.put(array[4], 1);
53
+ map.put(array[2], scores);
54
+ System.out.println("問題番号:"+ array[2] + "スコア" + array[4] + "人数" + 1);
55
+ }
56
+ else{
57
+ Integer number_p = map.get(array[2]).get(array[4]);
58
+ number_p += 1;
59
+ map.get(array[2]).put(array[4], number_p);
60
+ System.out.println("問題番号"+array[2] + "スコア"+array[4] + "人数"+number_p);
61
+ }
62
+ }
63
+ }
64
+ ```
65
+ 最終的にはそれぞれの問題番号のスコアごとに割合も算出したいです。
66
+ 2019/4/11 reading 1 24 10 9:30 9:31
67
+ 2019/4/11 reading 1 102 10 9:30 9:40
68
+ 2019/5/16 reading 5 96 8 9:03 9:09
69
+ 2019/5/16 reading 5 117 10 9:03 9:07
70
+ 2019/5/16 reading 5 44 10 9:03 9:09
71
+ 2019/5/9 reading 4 37 8 9:02 9:09
72
+ 2019/5/9 reading 4 56 6 9:02 9:07
73
+ 2019/5/9 reading 4 114 8 9:02 9:10
74
+ 2019/5/9 reading 4 58 8 9:03 9:10
75
+ 2019/4/25 reading 3 59 8 9:00 9:12
76
+ 2019/4/25 reading 3 144 6 9:03 9:11
77
+ 2019/4/25 reading 3 107 8 9:07 9:13
78
+ 2019/4/25 reading 3 74 2 9:11 9:14
79
+ 2019/4/18 reading 2 73 2 9:00 9:13
80
+ 2019/4/18 reading 2 105 8 9:00 9:10
81
+ 2019/4/18 reading 2 96 6 9:00 9:07
82
+
83
+ データは一部抜粋です。