diff --git a/Main.java b/Main.java index 1a68b2dd0a36d3447eed91dc217b0ec3bb12c172..d55248b5d8b7043b7181507edcfc265b7ac6c1e9 100644 --- a/Main.java +++ b/Main.java @@ -1,5 +1,29 @@ -class Main { +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) { - System.out.println("Hello world!"); + 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; } } \ No newline at end of file