public class Bill {
private Long code;
public Bill(Long code) {
this.code = code;
}
// setters and Getters
}
class Detail {
private BillId billId;
public Detail(BillId billId) {
this.billId = billId;
}
// setters and Getters
}
class BillId {
private Long number;
private Long code;
public BillId(Long number, Long code) {
this.number = number;
this.code = code;
}
// setters and Getters
}
现在我有了
List<Bill> listBill = new ArrayList<>();
listBill.add(new Bill(1L));
listBill.add(new Bill(2L));
listBill.add(new Bill(3L));
listBill.add(new Bill(4L));
listBill.add(new Bill(5L));
listBill.add(new Bill(6L));
List<Detail> listDetail = new ArrayList<>();
listDetail.add(new Detail(new BillId(1000L, 10L)));
listDetail.add(new Detail(new BillId(1000L, 2L)));
listDetail.add(new Detail(new BillId(2000L, 30L)));
listDetail.add(new Detail(new BillId(2000L, 4L)));
listDetail.add(new Detail(new BillId(3000L, 50L)));
listDetail.add(new Detail(new BillId(3000L, 6L)));
现在我需要一个新列表
,从listBill
获取项目,其中某些项目与listDetail
中的某些项目不匹配
detail.getBillId ().getCode() not match with bill.getCode()
预期列表对于新内容抱歉!
newListBill.add(new Bill(1L));
newListBill.add(new Bill(3L));
newListBill.add(new Bill(5L));
最佳答案
使用流API:
listBill.stream()
.filter( b -> !listDetail.stream()
.anyMatch( d -> d.getBillId().getCode() == b.getCode() ) )
.collect( Collectors.toList() );
关于java - 过滤列表的属性不包含在另一个列表的属性中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54680557/