传入一个数组,输出这个数组里面的所有排列

来源:互联网 发布:图片格式转换word软件 编辑:程序博客网 时间:2024/05/23 02:00
import java.util.ArrayList;/** * 传入一个数组,输出这个数组里面元素的所有可能组合 * EG:[1,2,3] 输出[1,2,3][1,3,2][2,1,3][2,3,1][3,1,2][3,2,1] * @author Administrator */public class ArrSort {static ArrSort as;ArrayList<String> save = new ArrayList<String>();static String[] arr = {"1","2","3","4"};/** * 判断list里面是否放入过当前数 * @param cur 当前数 * @param savelist * @return */public boolean is(String cur,ArrayList<String> save){for (String string : save) {if(null == string)return false;if(string.equals(cur)){return true;}}return false;}public void rec(int a){for(int i=0;i<arr.length;i++){if(as.is(arr[i], save))continue;save.add(arr[i]);if(a==1){System.out.println(save);}rec(a -1);save.remove(arr.length-a);}}/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubas = new ArrSort();as.rec(arr.length);}}
面试的一道题

原创粉丝点击