我有流:
Stream.of(coachingAreas)
.map(coachingArea -> Observable.from(coachingArea.weeks)
.map(coachingWeekRef -> coachingMap.put(coachingWeekRef.id, coachingWeekRef.version)));
每个数组都有数据,不是空的,而是该行:coachingMap.put(coachingWeekRef.id, coachingWeekRef.version)
不称呼。知道为什么?
-
您尚未在因此,流媒体流保持空闲状态。中间操作由终端操作驱动。本质上,终端操作产生了 non-stream 结果,例如原始值,对象,集合等。
-
在引入副作用时,请勿在
map
中间操作中执行coachingMap.put
,而是使用toMap
收集器。
假设coachingWeekRef.id
和coachingWeekRef.version
都是整数,那么整个查询看起来都这样:
Map<Integer, Integer> resultSet =
Stream.of(coachingAreas)
.map(coachingArea -> Observable.from(coachingArea.weeks))
.collect(Collectors.toMap(ClassName::getId, ClassName::getVersion));
或使用lambda表达式提取地图键和值,而不是如果您喜欢的话参考。