public static List<List<Integer>> combine(List<Integer> src){
if(src.size()==1){
List<List<Integer>> temp=new ArrayList<List<Integer>>();
temp.add(src);
return temp;
}else {
List<List<Integer>> temp = new ArrayList<List<Integer>>();
for (int i = 0; i < src.size(); i++) {
int cur = src.get(i);
List<List<Integer>> combine = combine(delIndex(src, i));//递归
for (List<Integer> curList : combine) {
curList.add(cur);
temp.add(curList);
}
}
return temp;
}
}
/** * 删除下标为count的数,组成新list * @param src * @param count */
public static List<Integer> delIndex(List<Integer> src,int count){
List<Integer> temp=new ArrayList<Integer>();
for(int i=0;i<src.size();i++){
if(i==count){
continue;
}
temp.add(src.get(i));
}
return temp;
}