如果属性本身为null,则过滤掉列表数据

时间:2016-05-15 08:38:49

标签: java java-5

我有以下名为BrokerInvoice的类,它包含以下成员变量

public class BrokerInvoice
{
private  List<BrokerInvoiceLineItem> lineItems;

//and its corresponding setters and getters 

}

我有下面名为BrokerInvoiceLineItem的java类,如下所示,它在名为brokerInvoice的顶级类中有一个关系,因为下面的类作为列表添加到类中

public class BrokerInvoiceLineItem {

    private String brokerRefId;
    private double notional;
    private Date dealDate;


    //corresponding setters and getters

    }

现在在一些代码中我得到了父类的对象,它是代理发票本身的

 BrokerInvoice  brokerInvoice1 = abc.findrty( brokerIdLong , serType );

现在上面的brokerInvoice1对象也包含了类型为BrokerInvoiceLineItem的lineItems的条目,所以我想编辑名为lineitems的列表,这样我在brokerInvoice1对象中的列表就是条件是应该有一个排序预先检查如果lineitems列出名为brokerRefId,notional,dealDate,dealDate的属性为null,则该条目不应该在行项目列表本身中

所以请告知我如何过滤掉我在brokerInvoice1对象中的lineitems列表,这样如果这些属性为空,则lineitemslist中不应该有空属性条目

我正在使用Java 5请告知如何实现这一点我可以通过java5实现相同的目标

2 个答案:

答案 0 :(得分:1)

如果您使用的是Java 8,则可以使用Collection中的$('#test111').on('mouseover', function() { $("#test222 img:nth-child(2)").css('display', "inline-block"); }).on('mouseout', function() { $("#test222 img:nth-child(2)").css('display', "none"); })

removeIf

这假设您要改变列表。 如果您不想更改listItems.removeIf(i -> i.getBrokerRefId() == null || i.getDealDate() == null); ,只获取没有错误项目的新列表,则可以使用stream filtering

listItems

请注意,流版本保留与谓词匹配的项目,而List<BrokerInvoiceLineItem> newList = listItems.stream() .filter(i -> i.getBrokerRefId() != null) .filter(i -> i.getDealDate() != null) .collect(Collector.toList()); 的项目则相反,因此谓词将被反转。

答案 1 :(得分:0)

Java 5:

private  List<BrokerInvoiceLineItem> newLineItems = new ArrayList<BrokerInvoiceLineItem>();


if (brokerInvoice1 != null && brokerInvoice1.lineItems != null){
for(BrokerInvoiceLineItem brokerInvoiceLineItem : brokerInvoice1.lineItems){
    if(brokerInvoiceLineItem.getBrokerRefId() != null && brokerInvoiceLineItem.getDealDate() == null){
        newLineItems.add(brokerInvoiceLineItem)
    }
}

}