使用过滤器和流将地图<字符串,对象>转换为地图<字符串,设置<对象>>
2022-09-02 03:24:53
我想转换我的地图,看起来像这样:
{
key="someKey1", value=Apple(id="1", color="green"),
key="someKey2", value=Apple(id="2", color="red"),
key="someKey3", value=Apple(id="3", color="green"),
key="someKey4", value=Apple(id="4", color="red"),
}
到另一张地图,将相同颜色的所有苹果放入同一列表中:
{
key="red", value=list={apple1, apple3},
key="green", value=list={apple2, apple4},
}
我尝试了以下方法:
Map<String, Set<Apple>> sortedApples = appleMap.entrySet()
.stream()
.collect(Collectors.toMap(l -> l.getColour, ???));
我是否在正确的轨道上?我应该为此任务使用过滤器吗?有没有更简单的方法?