我正在编写一个命令程序,其中有一个字符串列表,格式为:
AAA 100 BBB 200 CCC 300 AAA 50
所需的输出是将第一列分组并总结第二列。
AAA 150 BBB 200 CCC 300
我使用下面的代码并且它可以工作,但只是想知道它应该是一种更优雅的方式吗?
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;
}
非常感谢你们。