当前位置: 首页 > 知识库问答 >
问题:

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

吕飞翼
2023-03-14

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

我创建了一个List对象,它包含不同的集合变量,如arraylist,set,map等。在将自定义对象值分配给List之后,它将被转换为对象类Object。例如,我创建了一个hashmap形式的自定义对象,键为1,值为ID=1,Name=AAA,Address=Delhi的自定义对象,并将自定义对象分配给List。我还使用arraylist和set重复创建自定义对象的相同过程。如何根据ID唯一地遍历List对象以获取用户详细信息?

List<Collection> customobjectlist

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

这里每个列表、设置和映射包含5个自定义对象。我必须遍历customobjectlist,以便根据ID唯一地获取用户详细信息?

共有1个答案

颜祖鹤
2023-03-14

映射在Java中不是集合,因此您的代码:

List<Collection> customobjectlist

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

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

第二个问题,您应该键入您的collection(例如:list ),否则您将从集合中获得object,您将不得不每次检查instanceof,这真的不是一件好事!

因此,如果键入集合并仅将集合 (而不是Map)添加到CustomObjectList(列表队列堆栈矢量、...)您必须循环集合才能找到您的对象:

for (Collection coll : customobjectlist) {
  for (MyObject obj: coll) {
    if (theIdImLookingFor.equals(obj.getId()) {
      // find it
    }
  }
}

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

customobjectlist.stream()
  .flatMap(Collection::stream)
  .findFirst(obj -> theIdImLookingFor.equals(obj.getId()))
 类似资料:
  • 我正在努力找出如何使用Java流从对象值等于x的自定义对象列表中收集自定义对象。 这没有编译,但我不认为我离得很远--有人能指出我在哪里出错吗?

  • 我是Java和Stack Overflow的新手,我有一个关于排列的问题。 方法:我使用中的对象生成。每个的大小从(可能最小为1)到,并包含具有唯一名称属性的自定义生成对象。 问题:现在我的问题是如何在我的外部(y轴)中获得从第一个到最后一个的所有可能对象组合的排列(我想我们可以说这是x轴)? 我试着举一个简单的例子: : 1.1|1.2|1.3 : 2.1 : 3.1|3.2 这里,这些位于外部

  • YAML文件: 配置类: 我希望@value注释允许我注入相应的属性值,但这似乎不起作用(注入'id'字段似乎工作得很好)。

  • 问题内容: 在我的Spring Boot应用程序中,我具有以下内容的application.yaml配置文件。我想将其作为带有通道配置列表的Configuration对象注入: 我想用PaymentConfiguration对象列表填充@Configuration对象: 我使用@Autowired构造函数将其作为普通bean注入。xyz的值正确填充,但是当Spring尝试将yaml解析为对象列表时

  • 有什么线索吗?这里出了什么问题?