Java递归实现全排列改进(一)---利用HashSet实现去重

mac2022-06-30  126

import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set;

public class Test{  private static String[] s = new String[]{"a","b","a"};  private static int l = s.length;  private static Set<String> set = new HashSet<String>();  public static void main(String[] args) {   List<String> source = Arrays.asList(s);   List<String> target = new ArrayList<String>();   sort(source,target);   Iterator<String> it = set.iterator();   while(it.hasNext()){    System.out.println(it.next());   }  }

 private static void sort(List<String> source, List<String> target) {   if(target.size() == l){    set.add(target.toString().replaceAll(",", "").replace("[", "").replace("]", "").replace(" ", ""));   }   for(int i=0;i<source.size();i++){    List<String> targetList = new ArrayList<String>(target);    targetList.add(source.get(i));    List<String> resourceList = new ArrayList<String>(source);    resourceList.remove(i);    sort(resourceList,targetList);   }  } }

转载于:https://www.cnblogs.com/iamconan/p/7383613.html

最新回复(0)