使用流收集数据
假设有一个事务列表,你希望根据货币对它们进行分组。在Java 8之前,即使是这样一个简单的例子也很难实现,如下所示:
Map<Currency, List<Transaction>> transactionsByCurrencies = new HashMap<>();
for (Transaction transaction : transactions) {
Currency currency = transaction.getCurrency();
List<Transaction> transactionsForCurrency = transactionsByCurrencies.get(currency);
if (transactionsForCurrency == null) {
transactionsForCurrency = new ArrayList<>();
transactionsByCurrencies.put(currency, transactionsForCurrency);
}
transactionsForCurrency.add(transaction);
}在Java 8之后,仅用一条语句就可以获得完全相同的结果:
