Java Cactoos平面图类比

Java Cactoos平面图类比,java,cactoos,Java,Cactoos,图书馆里有类比吗?我需要的正是flatMap所能提供的,但没有流: flatMap()操作的作用是对流的元素应用一对多转换,然后将结果元素展平为新流 例如,如果列表中有一些值,每个值都有子项,并且我想从每个值中获取所有项,我可以使用flatMap: List<Value> values = someValues(); List<Item> items = values.stream() .flatMap(val -> val.items().stream())

图书馆里有类比吗?我需要的正是
flatMap
所能提供的,但没有流:

flatMap()操作的作用是对流的元素应用一对多转换,然后将结果元素展平为新流

例如,如果列表中有一些值,每个值都有子项,并且我想从每个值中获取所有项,我可以使用
flatMap

List<Value> values = someValues();
List<Item> items = values.stream()
  .flatMap(val -> val.items().stream()) // val.items() returns List<Item>
  .collect(Collectors.toList());
List values=someValues();
列表项=值。流()
.flatMap(val->val.items().stream())//val.items()返回列表
.collect(Collectors.toList());
如何使用Cactoos而不是streams API来做同样的事情?

您可以使用,它相当于展平
Iterable

例如,您可以写:

new Joined<>(new Mapped<>(val -> val.items(), someValues()));
newjoined(新映射(val->val.items(),someValues());

我没有使用过Cactoos,但我不明白为什么会有。Cactoos试图取代非面向对象的方法和结构。流已经是一个对象
flatMap
是对该对象的操作。这里唯一不符合Cactoos精神的是
Collectors。toList()
我想它会变成
new ListCollector()
谢谢,它提交了一份PR,在自述中显示出来