import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static java.util.stream.Collectors.toList; public class Main { public static void main(String[] args) { List list1 = Arrays.asList("A", "B", "C"); List list2 = Arrays.asList("1", "2"); List result = product(list1, list2); result.forEach(System.out::println); } /** * @param lists 可变长度参数列表 * */ public static List product(List... lists) { List temp = new ArrayList<>(); for (List list : lists) { if (temp.isEmpty()) { temp = list; } else { // stream流 flatMap 和 map 方法 temp = temp.stream().flatMap(o1 -> list.stream().map(o2 -> o1 + " " + o2)).collect(toList()); } } return temp; } }