N个List 笛卡尔基
package com.test; import java.util.ArrayList; import java.util.List; public class Main { public static int N = 4; public static void main(String[] args) { List<String> list1 = new ArrayList<String>(); list1.add("A"); list1.add("B"); list1.add("C"); List<String> list2 = new ArrayList<String>(); list2.add("D"); list2.add("E"); list2.add("F"); List<String> list3 = new ArrayList<String>(); list3.add("H"); list3.add("I"); list3.add("J"); List<String> list4 = new ArrayList<String>(); list4.add("1"); list4.add("2"); list4.add("3"); List<List<String>> l = new ArrayList<List<String>>(); l.add(list1); l.add(list2); l.add(list3); l.add(list4); List<String> strings = new ArrayList<String>(); strings = l.get(0); for (int i = 0; i < l.size(); i++) { if (i < N - 1) strings = conList(strings, l.get(i + 1)); else System.out.print(strings); } } public static List<String> conList(List<String> list1,List<String> list2){ List<String> strings = new ArrayList<String>(); for(String s1 : list1) { for(String s2 : list2) { strings.add(s1 + s2); } } return strings; } }