¿Cómo es la mejor manera (eficiente y simple) de convertir los valores de Map<Object1, List<Object2>> a List<Object2> . ¿Debo simplemente iterar sobre todas las entradas y adAll los elementos a una lista?
Aquí hay una tercera forma para que no necesite crear un ArrayList, que es lo que realmente preguntó. Esta es la forma correcta de usar secuencias porque no está cambiando el estado de ningún objeto.
List<Object2> values = myMap.values() .stream() .flatMap(Collection::stream) .collect(Collectors.toList());Acabo de encontrarlo:
List<Object2> list = myMap.values() .stream() .flatMap(item -> item.stream()) .collect(Collectors.toList()));Una opción usando addAll.
List<Object2> list = new ArrayList<>(); myMap.values().forEach(list::addAll);