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

回答編集履歴

2

追記

2019/07/28 14:52

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -70,4 +70,6 @@
70
70
  }
71
71
  }
72
72
  }
73
- ```
73
+ ```
74
+
75
+ もっとイケてる書き方をご存知の方は是非教えて下さい。

1

追記

2019/07/28 14:52

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -22,4 +22,52 @@
22
22
  listOfList.add(list);
23
23
  }
24
24
  System.out.println(listOfList); // => [[0], [1], [2]]
25
+ ```
26
+
27
+ 組んでみた
28
+ ---
29
+ 面白そうだったので、適宜ググりつつ書いてみました。
30
+ ```Java
31
+ import java.io.IOException;
32
+
33
+ import java.nio.file.Files;
34
+ import java.nio.file.Paths;
35
+
36
+ import java.util.HashMap;
37
+ import java.util.Map;
38
+
39
+
40
+ class Main {
41
+ public static void main(String[] args) throws IOException {
42
+ Map<Integer, Map<Integer, Integer>> map = new HashMap<>();
43
+
44
+
45
+ var path = Paths.get("./data.csv");
46
+ try(var in = Files.newBufferedReader(path)) {
47
+
48
+ while(true) {
49
+ var line = in.readLine();
50
+ if(line == null) break;
51
+
52
+ Integer question, score;
53
+ {
54
+ var fields = line.split(",");
55
+ assert fields.length == 5: "ill-formed CSV";
56
+
57
+ question = Integer.valueOf(fields[2]);
58
+ score = Integer.valueOf(fields[4]);
59
+ }
60
+
61
+ var inner = map.computeIfAbsent(
62
+ question, HashMap<Integer, Integer>::new
63
+ );
64
+ inner.merge(score, 1, (v1, v2) -> v1 + v2);
65
+ }
66
+ }
67
+
68
+ for(var key: map.keySet()) {
69
+ System.out.printf("%d, %s\n", key, map.get(key));
70
+ }
71
+ }
72
+ }
25
73
  ```