https://www.javacodegeeks.com/2015/11/java-8-streams-api-grouping-partitioning-stream.html
Java 8 Streams API: Grouping and Partitioning a Stream