import com.alibaba.fastjson.JSON;
import jdk.nashorn.internal.runtime.JSONFunctions;
import java.util.*;
/**
* @author maitian
* @description
* @date 2020/06/05 11:51
*/
public class Permutation {
public static List<List<String>> permutation(List<List<String>> arrays) {
final List<List<String>> initSource = new LinkedList<>();
arrays.get(0).forEach(a -> initSource.add(Collections.singletonList(a)));
List<List<String>> source = initSource;
if (arrays.size() <= 1) {
return source;
}
for (int i = 1; i < arrays.size(); i++) {
List<String> sentinel = arrays.get(i);
List<List<String>> tempSource = new LinkedList<>();
for (String s : sentinel) {
for (List<String> row : source) {
List<String> cp = new ArrayList<>(row.size());
row.forEach(a -> cp.add(""));
Collections.copy(cp, row);
cp.add(s);
tempSource.add(cp);
}
}
source = tempSource;
}
return source;
}
public static void main(String[] args) {
List<String> list1 = new LinkedList<>();
list1.add("红");
list1.add("蓝");
list1.add("黄");
List<String> list2 = new LinkedList<>();
list2.add("大号");
list2.add("中号");
list2.add("小号");
List<String> list3 = new LinkedList<>();
list3.add("套餐一");
list3.add("套餐二");
List<List<String>> t1 = new ArrayList<>();
t1.add(list1);
List<List<String>> t2 = new ArrayList<>();
t2.add(list1);
t2.add(list2);
List<List<String>> t3 = new ArrayList<>();
t3.add(list1);
t3.add(list2);
t3.add(list3);
System.out.println(JSON.toJSONString(permutation(t1)));
System.out.println(JSON.toJSONString(permutation(t2)));
System.out.println(JSON.toJSONString(permutation(t3)));
}
}
Java 多数组排列组合【电商系统商品规格属性排列组合】
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...