質問編集履歴
1
コードの追加
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
|
+
データは一部抜粋です。
|