精华内容
下载资源
问答
  • List数据去重的五种有效方法

    万次阅读 多人点赞 2019-07-16 15:25:35
    List去重方案方案一 方案一 /** * 去除重复数据 * * @param list */ public List<Map<String, Object>> distinct(List<Map<String, Object>> list) { final boolean sta =.....

    方案一:借助Set的特性进行去重

     	/**
         * 去除重复数据
         * 由于Set的无序性,不会保持原来顺序
         * @param list
         */
        public static List<String> list distinct(List<String> list) {
            final boolean sta = null != list && list.size() > 0;
            List doubleList= new ArrayList();
            if (sta) {
                Set set = new HashSet();
                set.addAll(list);
                doubleList.addAll(set);
            }
            return doubleList;
        }
    

    方案二 : 利用set集合特性保持顺序一致去重

    // Set去重并保持原先顺序的两种方法
       public static void delRepeat(List<String> list) {
       	   //方法一
           List<String> listNew = new ArrayList<String>(new TreeSet<String>(list));
           //方法二
           List<String> listNew2 = new ArrayList<String>(new LinkedHashSet<String>(list));
       }
    

    方案三 : 使用list自身方法remove()–>不推荐

        /**
         * 去除重复数据(一般不推荐)
         * 类似于冒泡排序思想
         * @param list
         */
      public static List<Map<String, Object>> distinct(List<Map<String, Object>> list) {
            if (null != list && list.size() > 0) {
            //循环list集合
                for  ( int  i  =   0 ; i  <  list.size()  -   1 ; i ++ )  {
                    for  ( int  j  =  list.size()  -   1 ; j  >  i; j -- )  {
                    	// 这里是对象的比较,如果去重条件不一样,在这里修改即可
                        if  (list.get(j).equals(list.get(i)))  {
                            list.remove(j);
                        }
                    }
                }
            }
            //得到最新移除重复元素的list
            return list;
        }
    

    方案四 : 遍历List集合,将元素添加到另一个List集合中

    // 遍历后判断赋给另一个list集合,保持原来顺序
    public static List<String> delRepeat(List<String> list) {
    	  List<String> listNew = new ArrayList<String>();
    	  for (String str : list) {
    	       if (!listNew.contains(str)) {
    	           listNew.add(str);
    	       }
    	   }
    	  return listNew ;
    }
    
    

    方案5 : 使用Java8特性去重

    public static List<String> delRepeat(List<String> list) {
         List<String> myList = list.stream().distinct().collect(Collectors.toList());
    	 return myList ;
    }
    
    展开全文
  • list去重,根据对象某个属性、某几个属性去重 去除List中重复的String List unique = list.stream().distinct().collect(Collectors.toList()); 去除List中重复的对象 // Person 对象 public class ...

    list去重,根据对象某个属性、某几个属性去重

    去除List中重复的String

    List unique = list.stream().distinct().collect(Collectors.toList());

    去除List中重复的对象

    // Person 对象
    public class Person {
        private String id;
        
        private String name;
        
        private String sex;
    
        <!--省略 get set-->
    }
    
    // 根据name去重
    List<Person> unique = persons.stream().collect(
                Collectors.collectingAndThen(
                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
    );
    
    
    // 根据name,sex两个属性去重
    List<Person> unique = persons.stream().collect(
               Collectors. collectingAndThen(
                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getName() + ";" + o.getSex()))), ArrayList::new)
    );
    

    filter()过滤列表

    List<Person> filterList = persons.stream().filter(p -> p.getSex().equals(1)).collect(Collectors.toList());
    
    
    List转Map

    从一个Person对象的List集合,取出idname组成一个map集合

    Map<String, String> collect = list.stream().collect(Collectors.toMap(p -> p.getId(), p -> p.getName()));
    
    从 List 中取出某个属性的组成 list 集合
    //1.提取出list对象中的一个属性
    List<String> stIdList1 = stuList.stream().map(Person::getId).collect(Collectors.toList());
    
    //2.提取出list对象中的一个属性并去重
    List<String> stIdList2 = stuList.stream().map(Person::getId).distinct().collect(Collectors.toList());
    
    展开全文
  • list的五种去重方法

    万次阅读 多人点赞 2018-10-31 10:12:35
    面试中经常被问到的list如何去重,一般是口述,不需要代码体现,这个时候,思维一定要清晰,可以罗列出集中去重的方法,以展现你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固 下面,我就将五种方法逐一...

    面试中经常被问到的list如何去重,一般是口述,不需要代码体现,这个时候,思维一定要清晰,可以罗列出集中去重的方法,以展现你对list数据结构,以及相关方法的掌握,体现你的java基础学的是否牢固 
    下面,我就将五种方法逐一展现 
    新建一个list数组: 
    List list = new ArrayList(); 
    list.add(26); 
    list.add(39); 
    list.add(39); 
    list.add(39); 
    list.add(39); 
    list.add(5); 
    list.add(40); 
    list.add(39); 
    list.add(25); 
    System.out.println(list); 
    方法一:使用java8新特性stream进行List去重 
    List newList = list.stream().distinct().collect(Collectors.toList()); 
    System.out.println(“java8新特性stream去重:”+newList); 
    list.add(39); 
    方法二:双重for循环去重 
    for (int i = 0; i < list.size(); i++) { 
    for (int j = 0; j < list.size(); j++) { 
    if(i!=j&&list.get(i)==list.get(j)) { 
    list.remove(list.get(j)); 


    上面的方法研究后,确实有点小问题,下面放上优化后的方法(不推荐使用,速度太慢

            for (int i = 0; i < list.size(); i++) {
                for (int j = 0; j < list.size(); ) {
    //                    System.out.println(i+"-"+list.get(i)+"-"+j+"!!!!"+list.get(j));
                    if (i != j && list.get(i) == list.get(j)) {
    //                    System.out.println(j+":"+list.get(j));
                        list.remove(j);
                    } else {
                        j++;
                    }
                }
            }

    System.out.println(“双重for循环去重:”+list); 
    list.add(39); 
    方法三:set集合判断去重,不打乱顺序 
    Set set1 = new HashSet(); 
    List newList1 = new ArrayList(); 
    for (Integer integer : list) { 
    if(set1.add(integer)) { 
    newList1.add(integer); 


    System.out.println(“set集合判断去重:”+list); 
    list.add(39); 
    方法四:遍历后判断赋给另一个list集合 
    List newList2 = new ArrayList(); 
    for (Integer integer : list) { 
    if(!newList2.contains(integer)){ 
    newList2.add(integer); 


    System.out.println(“赋值新list去重:”+newList2); 
    list.add(39); 
    方法五:set和list转换去重 
    Set set2 = new HashSet(); 
    List newList3 = new ArrayList(); 
    set2.addAll(list); 
    newList3.addAll(set2); 
    System.out.println(“set和list转换去重:”+newList3);
    --------------------- 
    作者:Trainer2107 
    来源:CSDN 
    原文:https://blog.csdn.net/Trainer2107/article/details/78571619 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 今天被去重玩死了,最后发现from写成了form,真是被自己蠢死了!如果写代码不是为了折磨自己,那将毫无意义! 接下来,鞭笞去重 数组去重 new Set去重之后获取的是假数组,需要用Array.from处理一下 let value = ['...

    今天被去重玩死了,最后发现from写成了form,真是被自己蠢死了!如果写代码不是为了折磨自己,那将毫无意义!
    接下来,鞭笞去重

    数组去重

    new Set去重之后获取的是假数组,需要用Array.from处理一下

    let value = ['是','不是','是'];
    value = Array.from(new Set(value));
    

    在这里插入图片描述

    字符串去重

    第一种方法就是把字符串用split转换为数组,用上面数组去重的方法去重之后,再用join转回字符串

    let value = '是不是,是';
    value = Array.from(new Set(value.split(''))).join();
    

    在这里插入图片描述

    第二种方法是利用两层循环

    let value = '是不是,是';let newValue = '是';
        for(var i=1;i<value.length;i++){
            for(var j=0;j<newValue.length;j++){
                if(newValue.indexOf(str[i])===-1){
                    newValue=newValue.concat(value[i]);
                }
            }
        }console.log(newValue);
    

    在这里插入图片描述

    对象去重

    下面是根据对象的id作为去重的依据,也可根据name去重,看个人需求

    let value = [
              {
                id: 1,
                name: '是'
              },
              {
                id: 1,
                name: '不是'
              },
              {
                id: 2,
                name: '是不是'
              },
              {
                id: 3,
                name: '不是不是'
              }
            ];
            const res = new Map();
            console.log(value);
            value.filter((value) => !res.has(value.id) && res.set(value.id, 1));
    

    在这里插入图片描述
    还没看够就结束了?快来关注xio博主吧~精彩花絮,幕后彩蛋等你来找哦~(#^.^#)~

    展开全文
  • HashSet去重

    2017-07-27 14:33:58
    简述了HashSet去重原理
  • 例如:多个TXT大数据文本文件合并以及文本行去重 130GB20亿行数据60分钟即可完成去重操作 测试数据大小:20亿行130GB的数据只需60分钟 平均去重速度:2000000000(行) ÷ 3600(秒) =‬ 555555(行/秒)≈55万行/秒 ...
  • 主要介绍了JS实现数组去重及数组内对象去重功能,结合实例形式分析了ES5与ES6两种版本针对数组去重的相关操作技巧,需要的朋友可以参考下
  • 数组去重

    2020-03-16 17:52:37
    去重的方法多种多样,以下提供三种去重方案 1.循环去重 2.filter去重 3.利用对象特性去重 1.循环去重 2.filter去重(过滤、数组方法) 3.利用对象特性去重 ...
  • 主要介绍了Java中对List去重, Stream去重的问题解答,文中给大家介绍了Java中List集合去除重复数据的方法,需要的朋友可以参考下
  • oracle去重语句

    2018-01-23 12:48:48
    oracle去重语句 ,批量设置,去除重复以及空格racle去重语句racle去重语句
  • 易语言节点去重源码

    2020-07-24 04:57:54
    易语言节点去重源码,节点去重
  • 转载《利用Linux命令行进行文本按行去重并按重复次数排序》 转载《awk使用案例:通过awk去除重复行》 awk命令去重,sort, uniq命令去重统计 利用Linux命令行进行文本按行去重并按重复次数排序 linux命令行提供了...
  • 主要介绍了JS实现字符串去重及数组去重的方法,涉及javascript针对字符串与数组的遍历、判断、删除、添加等相关操作技巧,需要的朋友可以参考下
  • js对字符串(逗号隔开的)进行去重操作;js对json数组进行去重操作(指定某个属性),开发中经常遇到的前端小方法,简单实用
  • 字符串去重跟数组去重大同小异,将字符串转成数组即可使用数组去重方法。ES5常用方式: function unique(array) { var result = []; for(var i = 0; i &lt; array.length; i++) { if (result.indexOf(array[i...
  • excel字段去重

    2018-11-27 10:21:55
    Excel 字段去重,比如“12,123,12”,去重后为“12,123”
  • 常见普通数组去重 利用Es6 Set去重 unique(arr){ return Array.from(new Set(arr)) }, 利用filter unique(arr){ return arr.filter((item,index,arr)=>{ return arr.indexOf(item,0) === index; }); ...
  • distinct去重在用in实在是不好用啊,速度堪忧! 根据字段去重,。 根据 id和sex 字段去除重复的行,并获取其它的列: select id,name,sex from( select a.*,row_number() over(partition by a.id,a.sex order by...
  • lambda去重

    千次阅读 2020-04-30 19:35:23
    字符串去重 List dataList = list.stream().distinct().collect(Collectors.toList()); 对象属性去重 //根据id去重 personList = personList.stream().collect(Collectors.collectingAndThen(Collectors.to...
  • 数据去重

    2019-10-25 18:15:55
    ①Excel去重,存在文件未完全加载问题,没有完全处理 •分成小文件 •重复值670 9441 •去重余1195 3141 ②Excel+程序 直接去重20191022 18:40 •读取数据存在读取不全,程序比较慢 •只读取原始数据: 1866 ...
  • SQL去重

    千次阅读 2019-07-04 14:29:53
    sql去重 当要查询的字段都是要去重的字段时则可以采用DISTINCT去重 select DISTINCT UID, Message from T_VOS where CreateDate >= '{0} 00:00:00' and CreateDate < '{1} 00:00:00 其它情况下采用以下方法...
  • 数组去重,一般会在面试的时候才会碰到,要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。在实际项目中碰到的数组去重,一般都是后台去处理,...
  • 数组去重,一般会在面试的时候才会碰到,要求手写数组去重方法的代码。如果是被提问到,数组去重的方法有哪些?你能答出其中的10种,面试官很有可能对你刮目相看。在实际项目中碰到的数组去重,一般都是后台去处理,...
  • sql去重和代码去重

    千次阅读 2017-12-26 17:40:54
    最近做项目,两张表都是百万数据的表,其中一主一从,客户要根据主表从从表中获取一条有效数据,从表数据很多脏数据,开始用sql去重发现速度很慢,后来用代码去重了 列表查询,一般就是几十条数据,先查出主表id的...
  • txt文本去重

    2018-03-26 16:35:18
    利用Java中hashmap 实现对TXT文本按行去重,进行去重操作后内容顺序不改变。
  • datatable去重

    2020-04-07 11:20:58
    ```csharp #region datatable去重 /// <summary> /// datatable去重 /// </summary> /// <param name="dtSource">需要去重的datatable</param> /// <pa...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,502
精华内容 21,400
关键字:

去重