Predicate toPredicate 链接 List<ForeignTradeOrder> 和 List<SportOrder>查询
时间: 2023-07-09 13:04:42 浏览: 128
C#重要知识之——泛型列表List<T>例子
5星 · 资源好评率100%
对于链接两个List的查询,我们需要先确定两个List中的元素之间的关系,即它们是否存在某种关联或共同属性。如果存在关联或共同属性,就可以使用Java 8中的Stream API和Lambda表达式来实现查询。
假设我们有两个List,一个是ForeignTradeOrder类型的List,另一个是SportOrder类型的List。它们都有一个名为"orderId"的属性,表示订单号。我们想要查询这两个List中所有订单号大于100的订单。
首先,我们需要将两个List合并成一个List,可以使用Java 8中的Stream.concat()方法实现:
```
List<Order> orders = Stream.concat(foreignTradeOrders.stream(), sportOrders.stream())
.collect(Collectors.toList());
```
其中,Order是ForeignTradeOrder和SportOrder的公共父类或接口。
然后,我们可以使用Stream API和Lambda表达式来实现查询:
```
List<Order> result = orders.stream()
.filter(order -> order.getOrderId() > 100)
.collect(Collectors.toList());
```
最后,将查询结果转换回ForeignTradeOrder或SportOrder类型的List即可。
需要注意的是,如果ForeignTradeOrder和SportOrder中的属性不完全相同,我们可能需要自定义一个转换方法来将Order类型转换回原类型。
阅读全文