zoukankan      html  css  js  c++  java
  • Java递归实现全排列改进(一)---利用HashSet实现去重

    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);
      }
     }
    }

  • 相关阅读:
    数组相关操作
    控制结构和函数
    调用函数和方法
    常用类型、算术和操作符重载
    函数式 CSS (FCSS)
    Javascript 封装问题
    认识javascript中的作用域和上下文
    Javascript 继承-原型的陷阱
    解耦你的HTML,CSS和JAVASRIPT
    网格如此简单
  • 原文地址:https://www.cnblogs.com/iamconan/p/7383613.html
Copyright © 2011-2022 走看看