Java 将对象列表转换为地图
我正在尝试将玩家列表转换为地图。player包含name和runs作为变量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
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
WhatsmapVal
?mapVal是一种hashMap类型好奇为什么需要IntStream.of(val1,val2).sum()
而不是val1+val2
Map<String, Integer> mapVal = playerList.stream()
.collect(Collectors.groupingBy(Player::getName,
Collectors.summingInt(Player::getDistance)));