Как мне объединить два списка в Java?
Есть ли более простой способ, чем:
List<String> newList = new ArrayList<String>();newList.addAll(listOne);newList.addAll(listTwo);
Условия:
Бонусные баллы за однострочную версию или JDK 1.3.
Переведено автоматически
Ответ 1
В Java 8:
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()) .collect(Collectors.toList());
Java 16+:
List<String> newList = Stream.concat(listOne.stream(), listTwo.stream()).toList();
Ответ 2
На первый взгляд, я могу сократить его на одну строку:
List<String> newList = new ArrayList<String>(listOne);newList.addAll(listTwo);
Ответ 3
Вы могли бы использовать библиотеку Apache commons-collections:
List<String> newList = ListUtils.union(list1, list2);
Ответ 4
Еще один однострочник Java 8:
List<String> newList = Stream.of(listOne, listTwo) .flatMap(Collection::stream) .collect(Collectors.toList());
В качестве бонуса, поскольку Stream.of() является переменным, вы можете объединить столько списков, сколько захотите.
Stream.of()
List<String> newList = Stream.of(listOne, listTwo, listThree) .flatMap(Collection::stream) .collect(Collectors.toList());