今天网上看到一个int数组全排列的问题,自己试着写了一下,依旧没有优化,大家将就着看吧,希望能对各位有帮助。
import java.util.ArrayList;
import java.util.List;
public class AllStr {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {1,2,3,4,5};
List<String> list = new ArrayList();
List<String> result = new ArrayList<String>();
int i=0;
while(i<a.length){
if(list.size()==0){
for (int j = 0; j < a.length; j++) {
list.add(String.valueOf(a[j]));
}
}else{
int size = list.size();
for (int j = 0; j < size; j++) {
for (int k = 0; k < a.length; k++) {
if(!list.get(j).contains(String.valueOf(a[k]))){
String temp = list.get(j)+a[k];
list.add(temp);
if(temp.length()==a.length){
result.add(temp);
}
}
}
}
}
i++;
}
for (String str : result) {
System.out.println(str);
}
}
}