首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >集合中自定义对象的列表(列表、数组、映射等)。)spring在JAVA中的应用

集合中自定义对象的列表(列表、数组、映射等)。)spring在JAVA中的应用
EN

Stack Overflow用户
提问于 2019-05-20 20:27:43
回答 1查看 924关注 0票数 0

根据要求,我必须创建一个自定义对象的列表,其中包含集合(数组,列表,映射等)中的id,名称,地址等详细信息。如何遍历集合列表以获取基于id的唯一记录?

我已经创建了一个列表对象,它包含不同的集合变量,如arraylist,set,map etc...After一旦自定义对象值被分配给List,它就被转换为对象类object.For示例,我创建了一个哈希表形式的自定义对象,键值为1,值为id=1,name=aaa,address=delhi,并将自定义对象分配给列表,我正在重复相同的过程,用于使用arraylist创建自定义对象,并将其设置为well..how,以遍历列表对象,以唯一基于id的用户详细信息?

代码语言:javascript
复制
List<Collection> customobjectlist

customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)

这里,每个list、set和map都包含5个自定义对象。我必须遍历customobjectlist,以便根据ID唯一地获取用户详细信息。

EN

回答 1

Stack Overflow用户

发布于 2019-05-20 21:00:27

Map不是Java中的Collection,所以您的代码:

代码语言:javascript
复制
List<Collection> customobjectlist

customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)

如果变量mapMap接口的子类的实例,则该变量无效。

第二个问题,你应该输入你的Collection (例如:List<Collection<MyObject>>),否则你会从集合中得到Object,你每次都要检查instanceof,这真的不是一件好事!

因此,如果您键入Collection并将Collection<MyObject> (而不是Map)添加到customobjectlist (ListSetQueueStackVector,...)你必须对集合进行循环才能找到你的对象:

代码语言:javascript
复制
for (Collection coll : customobjectlist) {
  for (MyObject obj: coll) {
    if (theIdImLookingFor.equals(obj.getId()) {
      // find it
    }
  }
}

这并不是唯一的方法,在Java中,您可以使用stream API:

代码语言:javascript
复制
customobjectlist.stream()
  .flatMap(Collection::stream)
  .findFirst(obj -> theIdImLookingFor.equals(obj.getId()))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56221030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档