小编wal*_*ter的帖子

特定键的映射中的值的总和

我有一个文件,文件在每行包含一对名称和金额,如下所示:

Mike 5
Kate 2
Mike 3
Run Code Online (Sandbox Code Playgroud)

我需要按键对这些值求和.我以这种方式解决了这个问题

public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<String, Integer>();
    try {
        Files.lines(Paths.get("/Users/walter/Desktop/stuff.txt"))
                .map(line -> line.split("\\s+")).forEach(line -> {
                    String key = line[0];
                    if (map.containsKey(key)) {
                        Integer oldValue = map.get(key);
                        map.put(key, oldValue + Integer.parseInt(line[1]));
                    } else {
                        map.put(line[0], Integer.parseInt(line[1]));
                    }
                });
        map.forEach((k,v) -> System.out.println(k + " " +v));

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    ;

}
Run Code Online (Sandbox Code Playgroud)

实际上我是如何以更多功能的方式改进这个代码,同时更多地同时处理数据(使用并行流等)

java refactoring hashmap java-8 java-stream

4
推荐指数
1
解决办法
1763
查看次数

标签 统计

hashmap ×1

java ×1

java-8 ×1

java-stream ×1

refactoring ×1