Functional Programming - flatMap
Table of Contents
About
This is when the element that you get in the stream is a list. You can flatten this list of list in a list of element. You do that with a flatMap operations.
The flatMap operation produces any number of output values per input value – include zero
The flatMap() operation has the effect of applying a one-to-many transformation to the elements of the stream (a list of list will create one big list), and then flattening the resulting elements into a new stream.
Articles Related
Example
A table may have several foreigns key. If we have several tables and that we want a list of all foreigns keys, we need flatMap to go from a list of foreign key by table to a list of keys for all tables.
Java
In Java, you need to return a stream with Stream.of of the stream method of any collections.
List<ForeignKey> foreignKeys = tables
.stream()
.flatMap(s->s.getForeignKeys().stream())
.collect(Collectors.toList());