Уже ответил выше, но вот другой подход, который вы можете использовать. Я не могу найти исходный пост, из которого я адаптировал его, но вот код для вашего вопроса. Как отмечалось выше, функция flatMap () - это то, что вы хотели бы использовать с Java 8. Вы можете добавить ее в служебный класс и просто вызвать "RandomUtils.combine (list1, list2, ...);" и вы получите единый список со всеми значениями. Просто будьте осторожны с подстановочным знаком - вы можете изменить его, если хотите менее общий метод. Вы также можете изменить его для наборов - вам просто нужно позаботиться об использовании flatMap () для наборов, чтобы избежать потери данных из методов equals / hashCode из-за природы интерфейса Set.
public static <T> List<?> combine(final List<?>... lists) {
return Stream.of(lists).flatMap(List::stream).collect(Collectors.toList());
}
{a: [1,2], b[3,4]}
вы хотите объединить их в цепочку[1,2,3,4]
, поставить лайк или составить список списков[[1,2],[3,4]]
, или заархивировать их[[1,3],[2,4]]
? Кроме того, вы знаете, что на карте нет порядка, не так ли?