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 }
  • 相关阅读:
    Python--安装 pip 和 scapy
    windows设置代理
    麦子的《我奋斗了18年才和你坐在一起喝咖啡》
    Tar命令
    test
    markdown语法
    js apply call
    windows文件大小和占用空间为何不一样
    prolog笔记
    html文字超出显示省略号
  • 原文地址:https://www.cnblogs.com/muyun/p/6963470.html
Copyright © 2011-2022 走看看