尝试将Java 8 Streams用于此
HashMap<String,Games> groupGames = new HashMap<String,Games> ();
for(Groups group: groups){
for(int groupId : group.getGroupId){
groupGames.put(groupId, group.getGame());
}
}
这很好但我想使用java 8
流来实现同样的功能。
这就是我对流
的看法public void toStream(List<Group> group){
group.stream().map(groups -> groups.getGroupIds())
.flatMap(group -> groups.stream()).collect(Collectors.toList());
}
我很难将每个groupId与游戏放在hashmap中...
我可以将groupIds列表弄平实
答案 0 :(得分:4)
groups.stream()
.flatMap(x -> x.getGroupId().stream()
.map(y -> new AbstractMap.SimpleEntry<>(y, x.getGame())))
.collect(Collectors.toMap(Entry::getKey, Entry::getValue, (x, y) -> y));
如果您知道将没有重复项,您可以删除(x,y) -> y
中的最后一个参数;或者您可以提供您认为合适的合并功能。