public static void main(String args[]) { String[] aData = {"A", "B", "C", "D"}; ArrayList alOrders = new ArrayList(); alOrders = getAllOrders(aData, alOrders); for(ArrayList alOrder : alOrders) { System.out.println(Arrays.toString(alOrder)); } } /** * get all order of an array */ public static ArrayList getAllOrders(String aData[], ArrayList alOrders) { if(aData.length == 0) { return alOrders; } ArrayList alFirst; if(alOrders.isEmpty()) { alFirst = new ArrayList(); alFirst.add(aData[0]); alOrders.add(alFirst); } else { alFirst = alOrders.get(0); } int iSize = alFirst.size(); if(iSize == aData.length) { return alOrders; } ArrayList alNewOrders = new ArrayList(); for(ArrayList alOrder : alOrders) { ArrayList alResult = insertElementByTurns(alOrder, aData[iSize]); alNewOrders.addAll(alResult); } return getAllOrders(aData, alNewOrders); } /** * insert a element to array, at all position */ public static ArrayList insertElementByTurns(ArrayList alBase, String sInsert) { ArrayList alResult = new ArrayList(); for(int i = 0; i <= alBase.size(); i++) { ArrayList alNew = new ArrayList(alBase); alNew.add(i, sInsert); alResult.add(alNew); } return alResult; }
java数组的全排列_java数组全排列
最新推荐文章于 2024-07-14 10:30:00 发布