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 多数组排列组合【电商系统商品规格属性排列组合】
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。