java 排列组合,Pm/n,从n个元素中取m个的排列,没找到现成的,写了一个,不知道效率如何。
public class permutations {
private LinkedList<String> out = new LinkedList<>();
private LinkedList<String> list = null;
private HashSet<ArrayList<String>> result = new HashSet<>();
public HashSet<ArrayList<String>> getPermutations(ArrayList<String> arr,int n){
result.clear();
list = new LinkedList<>(arr);
permutation(n);
return result;
}
private void permutation( int n){
if(n==0){
result.add(new ArrayList<>(out));
}
for(int i=0;i<list.size();i++){
out.push(list.remove(i));
permutation(n-1);
list.add(i, out.pop());
}
}
}