Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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筛选器无法返回布尔值_Java_Filter_Java Stream - Fatal编程技术网

Java筛选器无法返回布尔值

Java筛选器无法返回布尔值,java,filter,java-stream,Java,Filter,Java Stream,我正在尝试制作一个过滤器,用于过滤具有相同2个属性的不同对象 我知道使用distinct还有其他方法,但我希望使用过滤器中的过滤器。我有以下代码: filteredOrderLines.stream().filter(o -> filteredOrderLines.stream().filter(o2 -> o.getOrderId().equals(o2.getOrderId()) && o.getProductId().equals(o2.getProductId

我正在尝试制作一个过滤器,用于过滤具有相同2个属性的不同对象

我知道使用distinct还有其他方法,但我希望使用过滤器中的过滤器。我有以下代码:

filteredOrderLines.stream().filter(o -> filteredOrderLines.stream().filter(o2 -> o.getOrderId().equals(o2.getOrderId()) && o.getProductId().equals(o2.getProductId()))).collect(Collectors.toList());
我得到:

Bad return type in lambda expression: Stream<OrderLineDTO> cannot be converted to boolean
lambda表达式中的返回类型错误:流无法转换为布尔值
解决此任务更正确的方法是重写
Order
类中的
equals
hashCode
方法(包括
orderId
productId
字段)并在流中调用
distinct()
方法。流链将如下所示:

List<Order> uniqueOrders = filteredOrderLines.stream()
       .distinct()
       .collect(Collectors.toList()); 
List uniqueOrders=filteredOrderLines.stream()
.distinct()
.collect(Collectors.toList());

事件更正确的解决方案-使用
HashSet
从初始列表中删除重复项。

filteredOrderLines.stream().filter(o->filteredOrderLines.stream())
您在需要筛选的流中传递了集合。消息在某种程度上不是自解释的吗
流不能转换为布尔值