【发布时间】:2017-04-06 14:15:11
【问题描述】:
我有一个电台列表,每个电台都有一个收音机列表。我需要创建一个电台到电台的查找地图。我知道如何使用 Java 8 流 forEach 来做到这一点:
stationList.stream().forEach(station -> {
Iterator<Long> it = station.getRadioList().iterator();
while (it.hasNext()) {
radioToStationMap.put(it.next(), station);
}
});
但我相信应该有更简洁的方式,比如使用Collectors.mapping()。
有人可以帮忙吗?
【问题讨论】:
-
是否保证没有电台映射到多个电台?
-
stationList.stream().forEach(station -> station.getRadioList().stream().forEach(rl -> radioToStationMap.put(rl, station)))不够好? -
@ZhenyaM 使用流操作和
collect比使用forEach写入可变列表更好。 -
我很确定最“简洁的方法”是根本不使用 lambdas 或 Streams。
标签: java java-8 java-stream lookup collectors