将列表中的一个值与另一个列表的子列表中的另一个值进行比较java 8
下面是比较一个列表中的一个值与另一个列表中的一个值的代码。如果需要一个值列表,如何重写代码,方法是将第一个列表与另一个列表中具有多个对象的子列表中的另一个值进行比较 假设hitsList包含另一个子列表,并且需要将item对象中的一个值和hit对象列表中的另一个值进行比较将列表中的一个值与另一个列表的子列表中的另一个值进行比较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()
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)
)