【发布时间】:2021-02-05 10:36:42
【问题描述】:
我有物品清单,
class Item {
int id;
String name;
Map<String, String> map;
}
Item item1 = new Item(11, "name1", Map.of("k1", "v1"));
Item item2 = new Item(11, "name1", Map.of("k2", "v2"));
Item item3 = new Item(22, "name2", Map.of("k3", "v3"));
.
.
.
List<Item> list = List.of(item1, item2, item3 ...);
我想按 id 分组,但地图值保留了不同的值,如下所示,
List<Item> output = [ 11, "name1", map: { ["k1", "v1"],["k2", "v2"])) ], [ 22, "name2", map: { ["k3", "v3"] ] .....;
我尝试使用 group by 并返回,我如何在其中保留地图?
Map<Integer, List<Item>> collect = list.stream()
.collect(Collectors.groupingBy(Item::getId, Collectors.toList()));
【问题讨论】:
标签: java java-stream