java 商品多规格_Java 多数组排列组合【电商系统商品规格属性排列组合】
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 stati
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> permutation(List> arrays) {
final List> initSource = new LinkedList<>();
arrays.get(0).forEach(a -> initSource.add(Collections.singletonList(a)));
List> source = initSource;
if (arrays.size() <= 1) {
return source;
}
for (int i = 1; i < arrays.size(); i++) {
List sentinel = arrays.get(i);
List> tempSource = new LinkedList<>();
for (String s : sentinel) {
for (List row : source) {
List 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 list1 = new LinkedList<>();
list1.add("红");
list1.add("蓝");
list1.add("黄");
List list2 = new LinkedList<>();
list2.add("大号");
list2.add("中号");
list2.add("小号");
List list3 = new LinkedList<>();
list3.add("套餐一");
list3.add("套餐二");
List> t1 = new ArrayList<>();
t1.add(list1);
List> t2 = new ArrayList<>();
t2.add(list1);
t2.add(list2);
List> 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)));
}
}
更多推荐

所有评论(0)