Odpowiedziałem już powyżej, ale oto inne podejście, które możesz zastosować. Nie mogę znaleźć oryginalnego posta, z którego to dostosowałem, ale oto kod na potrzeby twojego pytania. Jak wspomniano powyżej, funkcja flatMap () jest tym, czego chciałbyś użyć w Javie 8. Możesz wrzucić ją do klasy narzędziowej i po prostu wywołać "RandomUtils.combine (list1, list2, ...);" i otrzymasz pojedynczą listę ze wszystkimi wartościami. Uważaj tylko na symbole wieloznaczne - możesz to zmienić, jeśli chcesz mniej ogólną metodę. Możesz również zmodyfikować go dla Setów - po prostu musisz uważać podczas używania flatMap () na Setach, aby uniknąć utraty danych z metod equals / hashCode ze względu na naturę interfejsu 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]}
, czy chcesz je[1,2,3,4]
połączyć w łańcuch, polubić , utworzyć listę list[[1,2],[3,4]]
lub spakować je[[1,3],[2,4]]
? Wiesz też, że mapa nie ma porządku, prawda?