Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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
将列表中的一个值与另一个列表的子列表中的另一个值进行比较java 8_Java_Collections_Java 8_Java Stream - Fatal编程技术网

将列表中的一个值与另一个列表的子列表中的另一个值进行比较java 8

将列表中的一个值与另一个列表的子列表中的另一个值进行比较java 8,java,collections,java-8,java-stream,Java,Collections,Java 8,Java Stream,下面是比较一个列表中的一个值与另一个列表中的一个值的代码。如果需要一个值列表,如何重写代码,方法是将第一个列表与另一个列表中具有多个对象的子列表中的另一个值进行比较 假设hitsList包含另一个子列表,并且需要将item对象中的一个值和hit对象列表中的另一个值进行比较 List<Item> itemList3 = Item.parallelStream() .filter(item -> hits.stream()

下面是比较一个列表中的一个值与另一个列表中的一个值的代码。如果需要一个值列表,如何重写代码,方法是将第一个列表与另一个列表中具有多个对象的子列表中的另一个值进行比较

假设hitsList包含另一个子列表,并且需要将item对象中的一个值和hit对象列表中的另一个值进行比较

List<Item> itemList3 = Item.parallelStream()
                  .filter(item -> hits.stream()
                    .anyMatch(hit -> 
                   item.getProductRecId().equals(hit.getCrtRecID()) 
                      ))
                    .collect(Collectors.toList());
List itemList3=Item.parallelStream()
.filter(项目->点击.stream()
.anyMatch(点击->
item.getProductRecId().equals(hit.getCrtRecID())
))
.collect(Collectors.toList());
试试这个:

Set ctrRecIDs=hits.stream()
.map(Hit::getCrtRecID)
.collect(收集器.toSet());
List filteredItems=items.stream()
.filter(it->CtrRecID.contains(it.getProductRecId())
.collect(Collectors.toList());

上述解的时间复杂度是线性的(
O(n)
),而初始解的时间复杂度是平方的(
O(n^2)