Java8流过滤器由多个参数组成

时间:2017-12-25 19:16:51

标签: java java-8 java-stream

我有以下课程:

public class Transfer {
    private String fromAccountID;
    private String toAccountID;
    private double amount;
}

以及List的{​​{1}}:

Transfer

我知道如何获得一个转移历史记录:

....
private List<Transfer> transfers = new ArrayList<>();

但我想要transfers.stream().filter(transfer -> transfer.getFromAccountID().equals(id)).findFirst().get(); fromAccountID,所以结果将是toAccountID List。如何使用Java8 Transfer过滤函数?

2 个答案:

答案 0 :(得分:4)

您可以filter两个属性(getFromAccountID()getToAccountID())和collect通过filterList的元素:

List<Transfer> filtered = 
    transfers.stream()
             .filter(t -> t.getFromAccountID().equals(id) || t.getToAccountID().equals(id))
             .collect(Collectors.toList());

答案 1 :(得分:4)

按两个属性过滤并收集到列表中。

List<Transfer> resultSet = 
      transfers.stream().filter(t -> id.equals(t.getFromAccountID()) || 
                        id.equals(t.toAccountID()))
               .collect(Collectors.toList());