java – 使用lambdaj过滤集合

前端之家收集整理的这篇文章主要介绍了java – 使用lambdaj过滤集合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个类:
public class Order{
    private Integer id;
    private List<Position> positions;
    ...
}

public class Position{
    private Integer id;
    private String content;
    ...
}

现在,我有一个包含订单的列表,并希望获得具有特定内容的所有订单.目前我这样做:

List<Order> orders = ... ;

List<Order> outputOrders = ... ;
for(Order order : orders){
    if(select(order.getPositions(),having(on(Position.class).getContent(),equalTo("Something"))).size() != 0){
        outputOrders.add(order);
    }
}

使用lambdaj有更好的方法吗?

提前致谢.

解决方法

那个怎么样:使用org.hamcrest.Matchers.hasItem?
List<Order> outputOrders =
        filter(having(on(Order.class).getPositions(),hasItem(having(on(Position.class).getContent(),equalTo("Something")))),orders);

猜你在找的Java相关文章