仙人掌flatMap类比

时间:2019-01-31 14:05:30

标签: java cactoos

flatMap库中是否有Cactoos类比?我完全需要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());

如何使用Cactoos代替流API来执行相同的操作?

1 个答案:

答案 0 :(得分:3)

您可以使用Joined,相当于将Iterable展平。

例如,您将编写:

new Joined<>(new Mapped<>(val -> val.items(), someValues()));