Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java8中比较两个对象列表并通过比较两个列表的一个属性形成一个新列表_Java_List_Java Stream - Fatal编程技术网

在Java8中比较两个对象列表并通过比较两个列表的一个属性形成一个新列表

在Java8中比较两个对象列表并通过比较两个列表的一个属性形成一个新列表,java,list,java-stream,Java,List,Java Stream,我有两个对象列表。这个对象列表有一个公共属性例如:Id。我想检查属性值是否为ie;第一个列表和第二个列表的id相等,如果相等,则使用Java8创建一个新列表,其中仅包含具有相同属性值的对象 我尝试过使用两个for循环。但是我想用Java8实现这个解决方案,这里有一个可能的解决方案。没有测试 假设列表是随机访问且长度相同,并且列表元素或属性均不为空: 如果列表不是随机访问,但它将在^2上,这也会起作用。在保存第一种列表类型时,您需要列表的交集 获取集合中的公共字段值 valuesToCheck=s

我有两个对象列表。这个对象列表有一个公共属性例如:Id。我想检查属性值是否为ie;第一个列表和第二个列表的id相等,如果相等,则使用Java8创建一个新列表,其中仅包含具有相同属性值的对象


我尝试过使用两个for循环。但是我想用Java8实现这个解决方案,这里有一个可能的解决方案。没有测试

假设列表是随机访问且长度相同,并且列表元素或属性均不为空:


如果列表不是随机访问,但它将在^2上,这也会起作用。

在保存第一种列表类型时,您需要列表的交集

获取集合中的公共字段值

valuesToCheck=secondList.stream().map(SecondListObject::commonFiled).collect(Collectors.toList);
"

在第一个上应用流,同时根据上一步中构建的集合中匹配的公共字段值进行过滤

firstList.stream().filter(x->valuesToCheck.contains(x.getCommonFiled)).collect(toList)

你明白要点了

请将代码与循环一起发布。谢谢您的回复。我的第一个列表是一个对象,第二个列表是另一种类型的对象。我表格中的第三个列表应该是与第一个列表类似的对象列表。例如:我有一个列表1,其中Listxyz=new ArrayList,列表2,其中Listopl=new ArrayList。这两个属性都具有唯一的属性ID。我需要第三个列表作为Abcbean的列表,它在两个列表中具有相同的唯一ID。我的第三个列表应该是:Listlkj=newarraylist;请帮助我克服我的疲劳和我得到的错误。错误:类型不匹配:无法从xyzbean第三个列表对象转换为int。请帮助我进行大量转换。这就是我想要的:
firstList.stream().filter(x->valuesToCheck.contains(x.getCommonFiled)).collect(toList)