Q:

Cactoos flatMap analogy

Is there flatMap analogy in Cactoos library? I need exactly what flatMap can, but without streams:

The flatMap() operation has the effect of applying a one-to-many transformation to the elements of the stream, and then flattening the resulting elements into a new stream.  

E.g. if I have some values in list, and each value has children items, and I want to get all items from each value, I can use flatMap:
List<Value> values = someValues();
List<Item> items = values.stream()
  .flatMap(val -> val.items().stream()) // val.items() returns List<Item>
  .collect(Collectors.toList());

How to do the same thing using Cactoos instead of streams API?

A:

You can use Joined, it is the equivalent of flattening an Iterable.
For example, you would write:
new Joined<>(new Mapped<>(val -> val.items(), someValues()));

