Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将对象列表转换为地图_Java_Hashmap_Java Stream - Fatal编程技术网

Java 将对象列表转换为地图

Java 将对象列表转换为地图,java,hashmap,java-stream,Java,Hashmap,Java Stream,我正在尝试将玩家列表转换为地图。player包含name和runs作为变量 List<Player> runnerList = Arrays.asList(new Player("Virat", 4654), new Player("Jaddu", 5798), new Player("Dhoni", 4581), new Player("Virat", 8709), new Player("Dhoni", 4711), new Pla

我正在尝试将玩家列表转换为地图。player包含name和runs作为变量

List<Player> runnerList = Arrays.asList(new Player("Virat", 4654), new Player("Jaddu", 5798),
            new Player("Dhoni", 4581), new Player("Virat", 8709), new Player("Dhoni", 4711),
            new Player("Virat", 4541));

结果将是{Dhoni=9292,Jaddu=5798,Virat=17904},使用流寻找解决方案。

您可以使用
toMap
收集器作为:

Map<String, Integer> mapVal = playerList.stream()
        .collect(Collectors.toMap(Player::getName,
                Player::getDistance, Integer::sum));

您可以将
toMap
收集器用作:

Map<String, Integer> mapVal = playerList.stream()
        .collect(Collectors.toMap(Player::getName,
                Player::getDistance, Integer::sum));

什么是
mapVal
?mapVal是一种hashMap类型好奇为什么需要
IntStream.of(val1,val2).sum()
而不是
val1+val2
Whats
mapVal
?mapVal是一种hashMap类型好奇为什么需要
IntStream.of(val1,val2).sum()
而不是
val1+val2
Map<String, Integer> mapVal = playerList.stream()
        .collect(Collectors.groupingBy(Player::getName,
                Collectors.summingInt(Player::getDistance)));