[英]Java8 stream filter by multiple parameters
我有以下课程:
public class Transfer {
private String fromAccountID;
private String toAccountID;
private double amount;
}
和Transfer
List
:
....
private List<Transfer> transfers = new ArrayList<>();
我知道如何获得一个转移历史记录:
transfers.stream().filter(transfer ->
transfer.getFromAccountID().equals(id)).findFirst().get();
但是我希望从“ fromAccountID
和“ toAccountID
,因此结果将是“ Transfer
List
”。 如何使用Java8 Stream
过滤功能?
您可以filter
由两个属性( getFromAccountID()
和getToAccountID()
并collect
了通过内容filter
的List
:
List<Transfer> filtered =
transfers.stream()
.filter(t -> t.getFromAccountID().equals(id) || t.getToAccountID().equals(id))
.collect(Collectors.toList());
按两个属性过滤并收集到一个列表中。
List<Transfer> resultSet =
transfers.stream().filter(t -> id.equals(t.getFromAccountID()) ||
id.equals(t.toAccountID()))
.collect(Collectors.toList());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.