java - JAVA中的集合中的自定义对象列表(列表,数组,映射等...)Spring应用程序

标签 java collections

根据要求,我必须创建一个自定义对象列表,其中包含集合中的 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 ( ListSetQueueStackVector ,...)您必须循环集合才能找到您的对象:

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/

相关文章:

c# 当达到收集容量或发生超时时触发事件

java - 为什么 CheckBoxMenuItem 不生成操作事件?

java - 是否有一张 map 可以为我提供双向散列?

java - Wildfly 重新启动时,HornetQ 不遵循队列中的最后一个值

java - 如何动态传递数据类型(如 int、char、.....)?

java - 在单线程环境中使用Hashtable等线程安全集合类有什么缺点吗?

java - 如何转换 java map 的值?

java - 让assertj打印特殊字符?

java - 使用反射Java获取hashmap,代码错误

java - Collections.sort() 声明 : why <? super T> 而不是 <T>