【发布时间】:2020-03-07 08:05:47
【问题描述】:
我需要将POJO 的List 转换为Map<Integer, List<MyClass>>,其中键是来自MyClass 的值,即下面的代码如下所示:
public class MyClass {
public int id; // this field value must be key of map.
public String name;
}
public static void main(String... args) {
List<MyClass> lst = new ArrayList();
lst.add(new MyClass(1, "John"));
lst.add(new MyClass(1, "Peter"));
lst.add(new MyClass(2, "Sarah"));
Map<Integer, List<MyClass>> res = lst.collect(..);
}
我该怎么做?你能帮帮我吗?
【问题讨论】:
-
以及 Map
> 的键是什么,如果您计划使用 MyClass 的 id,由于重复键,您往往会丢失数据 -
@ShaileshChandra 不,可以分组,并且对于每个重复的
id,实体将作为地图的相应值添加到列表中。 -
@Naman 明白了,实际上我将目标读作 Map
我的错
标签: java java-stream grouping collectors