Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有“的对象的映射列表”;id";作为具有ID列表的属性。假设数据类型是整数_Java_Algorithm_Collections_Java 8_Logic - Fatal编程技术网

Java 具有“的对象的映射列表”;id";作为具有ID列表的属性。假设数据类型是整数

Java 具有“的对象的映射列表”;id";作为具有ID列表的属性。假设数据类型是整数,java,algorithm,collections,java-8,logic,Java,Algorithm,Collections,Java 8,Logic,假设我有一个pojo对象 Obj--> {"id":1, "name":"demo"} 我有两张ArrayList。 一个是这些对象的列表,另一个是整数的列表。现在,最好的编码方式是什么,这样我就可以将整数列表映射到对象列表 我需要的是一个有id作为键的映射,以及所有那些具有类似id的对象作为该映射中的列表 例如: Obj1 with id 1 Obj2 with id 1 Obj3 with id 2 Obj4 with id 2 地图上会有 for key --> id:1

假设我有一个pojo对象

Obj--> {"id":1, "name":"demo"}
我有两张ArrayList。 一个是这些对象的列表,另一个是整数的列表。现在,最好的编码方式是什么,这样我就可以将整数列表映射到对象列表

我需要的是一个有
id
作为键的映射,以及所有那些具有类似id的对象作为该映射中的列表

例如:

Obj1 with id 1
Obj2 with id 1
Obj3 with id 2
Obj4 with id 2
地图上会有

for key --> id:1  Value Obj1 and Obj2
for key --> id:2 Value Obj3 and Obj4

如何实现这一点?

我不理解需要两个数组列表,您可以根据每个pojo的标识符进行分组,将它们收集到一个
映射中,其中每个标识符可以映射到具有相同标识符的多个pojo


pojos.stream().collect(Collectors.groupingBy(Pojo::getId))

查看
Collectors.groupingBy
。这已经被回答了很多次了。这看起来像一个
地图
,我建议使用番石榴
多地图
收集器。gropingBy()