Java 8 streams - flatMap to join list of lists
1 min readSep 18, 2020
We can use flatMap method to join list of lists, as flatMap helps to join streams.
let’s say we have a List<List<T>>, and we want to join all the List<T> inside the parent list together as a single list as a List<T>.
example:
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
public class FlatMapJoinLists {
public static void main(String[] args) {
List<Room> roomList = new ArrayList<>();
roomList.add(new Room("A"));
roomList.add(new Room("B")); List<Room> roomList1 = new ArrayList<>();
roomList1.add(new Room("C"));
roomList1.add(new Room("D"));List<List<Room>> list = new ArrayList<>();
list.add(roomList);
list.add(roomList1);
List<Room> roomListMerged = list.stream().flatMap(Collection::stream).collect(Collectors.toList());
System.out.println(roomListMerged);
/* output is the merged list
[Room@2133c8f8, Room@43a25848, Room@3ac3fd8b, Room@5594a1b5]
*/
}
}
class Room {
String name;
Room(String name) {
this.name = name;
}
}