list去重 distinct

list去重 distinct总结下。1.使用java8新特性stream进行List去重publicstaticList<String>delRepeat(List<String>list){List<String>myList=listAll.stream().distinct().collect(Collectors.toList());returnmyList;}2.双重for循环去重(不推荐使用,速度太慢)实际是使用lis…

大家好,又见面了,我是你们的朋友全栈君。

总结下。

1. 使用java8新特性stream进行List去重

public static List<String> delRepeat(List<String> list) {

     List<String> myList = listAll.stream().distinct().collect(Collectors.toList());
     return myList ;
}
 

2.双重for循环去重 (不推荐使用,速度太慢)

实际是使用list自身方法remove()方法。 

        for (int i = 0; i < list.size(); i++) {

            for (int j = 0; j < list.size(); ) {

                if (i != j && list.get(i) == list.get(j)) {

                    list.remove(j);
                } else {

                    j++;
                }
            }
        }

3.set集合判断去重

不打乱顺序

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

B
Set set1 = new HashSet(); 
List newList1 = new ArrayList(); 
for (Integer integer : list) { 
if(set1.add(integer)) { 
newList1.add(integer); 

 

打乱顺序

     /**
     * 去除重复数据
     * 由于Set的无序性,不会保持原来顺序
     * @param list
     */
    public static List<Map<String, Object>> distinct(List<Map<String, Object>> list) {

        final boolean sta = null != list && list.size() > 0;
        if (sta) {

            Set set = new HashSet();
            List doubleList= new ArrayList();
            set.addAll(list);
            doubleList.addAll(set2);
            return doubleList;
        }
        return null;
    }
 

4.遍历后判断赋给另一个list集合 

List newList2 = new ArrayList(); 
for (Integer integer : list) { 
if(!newList2.contains(integer)){ 
newList2.add(integer); 

5.

Set set2 = new HashSet(); 
List newList3 = new ArrayList(); 
set2.addAll(list); 
newList3.addAll(set2); 
System.out.println(“set和list转换去重:”+newList3);

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142635.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021.10.3激活码【2021免费激活】

    (idea2021.10.3激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0YQJ1128OW-eyJsaWNlbnNlSW…

    2022年3月28日
    47
  • matlab中gamma函数_gamma校正法

    matlab中gamma函数_gamma校正法《基于matlab的gamma校正》由会员分享,可在线阅读,更多相关《基于matlab的gamma校正(2页珍藏版)》请在人人文库网上搜索。1、基于matlab的gamma校正1、gamma校正的原理其原始图像产生了失真,失真程度有具体系统的gamma值决定,通过相应的软件对图像数据进行预补偿,再送入CRT显示。二、分析原图如下:I=imread(aaa.jpg);subplot(2,2,1)…

    2022年9月22日
    1
  • jetbrainspycharm改中文_pycharm无法debug

    jetbrainspycharm改中文_pycharm无法debug在IDE中写代码时,很多时候需要用到多行编辑模式。像我写java或者scala等jvm代码使用的是intellij,而写python代码一般使用的是pycharm,这两IDE都是JetBrains系列的IDE。JetBrains系列IDE里,多行编辑模式很简单,在文件中邮件,然后选择ColumnSelectMode,就可以进行多行编辑了。Intellij里面的多行编辑效果图pycha…

    2022年8月26日
    5
  • 如何用 python gzip解压?[通俗易懂]

    如何用 python gzip解压?[通俗易懂]#createadecompressgzipfilefunctionimportgzipimportosdefun_gzip(gzip_file):f_name=gzip_file.split(‘.’)[0]withgzip.open(gzip_file,’rb’)asf_in:withopen(f_name,’wb’)asf_out:f_out.writelines(f_in)

    2022年9月6日
    4
  • ReLU和BN层简析[通俗易懂]

    ReLU和BN层简析[通俗易懂]卷积神经网络中,若不采用非线性激活,会导致神经网络只能拟合线性可分的数据,因此通常会在卷积操作后,添加非线性激活单元,其中包括logistic-sigmoid、tanh-sigmoid、ReLU等。sigmoid激活函数应用于深度神经网络中,存在一定的局限性,当数据落在左右饱和区间时,会导致导数接近0,在卷积神经网络反向传播中,每层都需要乘上激活函数的导数,由于导数太小,这样经过几次传播后,靠…

    2022年10月9日
    2
  • 记一次 Centos7 安装使用 PostWoman

    记一次 Centos7 安装使用 PostWoman一、简介官网:https://www.worldlink.com.cn/osdir/postwoman.htmlDEMO:https://postwoman.io/GITHUB下载:https://github.com/liyasthomas/postwoman二、使用工具1、操作系统Centos7.4x64Minimal1708安装1台虚拟机:2G内存1…

    2025年7月5日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号