次の形式の文字列のリストがあるコマンドプログラムを作成しています。
AAA 100 BBB 200 CCC300 AAA 50
そして、望ましい出力は、最初の列をグループ化し、2 番目の列を要約することです。
AAA 150 BBB 200 CCC300
私は以下のコードを使用して動作しますが、これを行うにはもっとエレガントな方法が必要でしょうか?
public static Map<String, Integer> summarizeData(List<String> lines) {
Map<String, Integer> map = new HashMap<String, Integer>();
String[] temp;
for (String line : lines) {
temp = line.split("\\s+");
if (map.containsKey(temp[0])) {
int value = Integer.valueOf(temp[1])
+ (Integer) map.get(temp[0]);
map.put(temp[0], value);
} else {
map.put(temp[0], Integer.valueOf(temp[1]));
}
}
return map;
}
どうもありがとう。