[英]How to get a map object, from a list object which contains multiple different mysql dates using java stream
[英]Java stream, get multiple properties from object
我有一个像这样的 object:
public class Transaction {
private long buyerId;
private long sellerId;
... }
给定一个List<Transaction>
,我想要参与这些交易的所有买家/卖家的 ID,例如Collection<Long>
。 这是我的工作解决方案:
List<Transaction> transactions = getTransactions();
Stream<Long> buyerIds = transactions.stream().map( Transaction::getBuyerId );
Stream<Long> sellerIds = transactions.stream().map( Transaction::getSellerId );
Collection<Long> allBuyerSellerIds = Stream.concat( buyerIds, sellerIds )
.collect( Collectors.toList() );
但是,如果我可以在不重复transactions
两次的情况下做到这一点,那就太好了。 我怎样才能做到这一点? 即我想用 stream 遍历transactions
,并且每次都获得多个属性。
谢谢。
您可以使用flatMap
,因为您最终还是希望它们在一个集合中。
getTransactions().stream()
.flatMap(t -> Stream.of(t.getBuyerId(), t.getSellerId()))
.collect(toList());
如果您不希望它们在单个集合中,则最好使用传统的循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.