根据要求,我必须创建一个自定义对象列表,其中包含集合中的 id、名称、地址等详细信息(数组、列表、 map 等..)如何遍历集合列表以获取基于id的唯一记录?
我创建了一个 List 对象,它包含不同的集合类型,如 arraylist、set、map 等...将自定义对象值分配给 List 后,它会转换为 Object 类对象。例如,我创建了一个自定义对象对象以 hashmap 的形式,键为 1,值为 id=1、name=aaa、address=delhi 的自定义对象,并将自定义对象分配给列表,我正在使用 arraylist 和重复相同的过程来创建自定义对象也设置一下..如何遍历List对象以便根据id唯一地获取用户详细信息?
List<Collection> customobjectlist
customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)
这里每个列表、集合和映射都包含 5 个自定义对象。我必须遍历自定义对象列表才能根据 ID 唯一地获取用户详细信息?
最佳答案
Map
不是Collection
在Java中,所以你的代码:
List<Collection> customobjectlist
customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)
如果您的变量 map
则无效是 Map
的子类的实例界面。
第二期,您应该输入 Collection
(例如: List<Collection<MyObject>>
),否则你会得到 Object
从集合中,您必须检查 instanceof
每次都这样,真的不是什么好事!
因此,如果您输入 Collection
并仅添加 Collection<MyObject>
(不是 Map
)到 customobjectlist
( List
, Set
, Queue
, Stack
, Vector
,...)您必须循环集合才能找到您的对象:
for (Collection coll : customobjectlist) {
for (MyObject obj: coll) {
if (theIdImLookingFor.equals(obj.getId()) {
// find it
}
}
}
这不是唯一的方法,在 Java 8+ 中,您可以使用流 API :
customobjectlist.stream()
.flatMap(Collection::stream)
.findFirst(obj -> theIdImLookingFor.equals(obj.getId()))
关于java - JAVA中的集合中的自定义对象列表(列表,数组,映射等...)Spring应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56221030/