获取实现多个数据的全部排列组合

Posted 大别山人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取实现多个数据的全部排列组合相关的知识,希望对你有一定的参考价值。

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrangedUtil {
    private static List<List<?>> allList = new ArrayList<>();
    public static <T>void getAll(List<T> list,List<T> list2,int n){
        for (T object : list2) {
            List<T> ll = new ArrayList<>();
            ll.add(object);
            List<T> ll2 = new ArrayList<>(list2);
            ll2.remove(object);
            ll.addAll(list);
            getAll(ll,ll2,n);
            if(ll.size() == n){
                allList.add(ll);
            }
        }
    }
    public static void main(String[] args) {
        List<Integer> data = new ArrayList<>();
        Collections.addAll(data, 1,2,3);
        getAll(new ArrayList<Integer>(),data,data.size());
        for (List<?> list: allList) {
            System.out.println(list);
        }
    }
}

运行结果:

 

以上是关于获取实现多个数据的全部排列组合的主要内容,如果未能解决你的问题,请参考以下文章

并行/组合多个 64 位值的按位排列

java字母和数字排列组合后

itertools 排列组合

关于各种排列组合java算法实现方法

Python排列组合的计算方法

js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合