Java разделить String на отдельные элементы при помощи stream API

имеется список String, нужно разделить его на отдельные слова и поместить их в другой список

"car - plane" -> "car", "plane"

не могу понять как это сделать через stream API текущее решение слишком громоздкое

public class Test {
    public static void main(String [] args) {
        List<String> combined = new ArrayList<>();
        combined.add("car - plane");
        combined.add("book - home");
        combined.add("flight - game");

         List<String[]> splitted = combined.stream()
                .map(words -> words.split(" - "))
                .collect(Collectors.toList());

        List<String> words = new ArrayList<>();
        for (String[] el : splitted) {
            for(String word : el) {
                words.add(word);
            }
        }
     
    }
}


Ответы (1 шт):

Автор решения: Serodv
List<String> words = combined.stream()
                    .flatMap(pair -> Stream.of(pair.split(" - ")))
                    .collect(Collectors.toList());
→ Ссылка