根据要求,我必须创建一个自定义对象的列表,其中包含集合(数组,列表,映射等)中的id,名称,地址等详细信息。如何遍历集合列表以获取基于id的唯一记录?
我已经创建了一个列表对象,它包含不同的集合变量,如arraylist,set,map etc...After一旦自定义对象值被分配给List,它就被转换为对象类object.For示例,我创建了一个哈希表形式的自定义对象,键值为1,值为id=1,name=aaa,address=delhi,并将自定义对象分配给列表,我正在重复相同的过程,用于使用arraylist创建自定义对象,并将其设置为well..how,以遍历列表对象,以唯一基于id的用户详细信息?
List<Collection> customobjectlist
customobjectlist.add(list)
customobjectlist.add(set)
customobjectlist.add(map)这里,每个list、set和map都包含5个自定义对象。我必须遍历customobjectlist,以便根据ID唯一地获取用户详细信息。
发布于 2019-05-20 21:00:27
Map不是Java中的Collection,所以您的代码:
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中,您可以使用stream API:
customobjectlist.stream()
.flatMap(Collection::stream)
.findFirst(obj -> theIdImLookingFor.equals(obj.getId()))https://stackoverflow.com/questions/56221030
复制相似问题