zoukankan      html  css  js  c++  java
  • Java代码工具箱_用Set给List/Vector去重

    参考

    方法一:需要2个容器,1个迭代去重,1个作为结果容器。 

    此方法其实想法比较简单也是正常思路:

    package com.yonyou.test;
     
    import java.util.List;
    import java.util.Vector;
     
    public class Test{
    public static void main(String[] args) {
         List<String> vector=new Vector<String>();
         vector.add("Hello");
         vector.add("world");
         vector.add("Hello");
    
         System.out.println("去重之前vector中的集合为:"+vector.toString());
        
         List<String> newVector=new Vector<String>();
         for(String str:vector)
         {
             if(!newVector.contains(str))
                newVector.add(str);
         }
    
         System.out.println("去重之后vector中的集合为:"+newVector.toString());    
          
    }
    }
    方法二:
    对于方法一而言,这也许是一个小窍门。利用的是Set集合中不允许出现重复的元素。
    
    package com.yonyou.test;
     
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    import java.util.Vector;
     
    public class Test{
    public static void main(String[] args) {
         List<String> vector=new Vector<String>(); //这里的vector可以换成ArrayList或者LinkedList,效果都一样
         vector.add("Hello");
         vector.add("world");
         vector.add("Hello");
    
         System.out.println("去重之前vector中的集合为:"+vector.toString());
    
         Set<String> set=new HashSet<String>(vector);
         vector=new Vector<String>(set);
    
         System.out.println("去重之后vector中的集合为:"+vector.toString());
      }
    }
     

    方法三:参考

    当需要去重的东西是对象,而不是简单类型时,就需要用到如下的高级操作了。

    很棒的方法,比迭代然后 contains 快捷高效。

    /**
         * 将列表中重复的用户移除,重复指的是name相同
         *
         * @param userList
         * @return
         */
        public static ArrayList<People> removeDuplicteUsers(ArrayList<People> userList) {
    Set
    <People> s = new TreeSet<People>(new Comparator<People>() { @Override public int compare(People o1, People o2) { return o1.getName().compareTo(o2.getName());  //定义People对象的比较函数 } });
    s.addAll(userList);           //利用 set 的比较函数,去除重复用户
    return new ArrayList<People>(s);    //再转换回List }
  • 相关阅读:
    离场飞越转弯全家福
    画一个PBN大角度飞越转弯保护区
    画一个小角度飞越转弯保护区
    Point Estimation
    Random variable
    心流
    Survey sampling
    Distribution
    数学分析总结
    topological space
  • 原文地址:https://www.cnblogs.com/muyun/p/6963470.html
Copyright © 2011-2022 走看看