List集合的去重

Java项目中list集合的7种去重方法 新建一个集合,然后循环原来的集合,每次循环判断原集合中的循环项,如果当前循环的数据,没有在新集合中存在就插入,已经存在了就舍弃,就得到了一个没有重复元素的集合了。使用迭代器循环判断每一项数据,如果当前循环的数据,在集合中存在两份或两份以上,就将当前的元素删除掉,这样循环完之后,即可得到一个没有重复数据的集合。JDK 8 为我们带来了一个非常实用的方法 Stream,使用它可以实现很多功能。(个人感觉Stream非常nice好用) 阅读详情

 

一、String去重:  
  
//set集合去重,不改变原有的顺序
    public static void pastLeep1(List<String> list){
        System.out.println("list = [" + list.toString() + "]");
        List<String> listNew=new ArrayList<>();
        Set set=new HashSet();
        for (String str:list) {
            if(set.add(str)){
                listNew.add(str);
            }
        }
        System.out.println("listNew = [" + listNew.toString() + "]");
    }
//遍历后判断赋给另一个list集合
    public static void pastLeep2(List<String> list){
        System.out.println("list = [" + list.toString() + "]");
        List<String> listNew=new ArrayList<>();
        for (String str:list) {
            if(!listNew.contains(str)){
                listNew.add(str);
            }
        }
        System.out.println("listNew = [" + listNew.toString() + "]");
    }
//set去重
    public static void pastLeep3(List<String> list){
        System.out.println("list = [" + list + "]");
        Set set = new HashSet();
        List<String> listNew=new ArrayList<>();
        set.addAll(list);
        listNew.addAll(set);
        System.out.println("listNew = [" + listNew + "]");
    }

    //set去重(缩减为一行)
    public static void pastLeep4(List<String> list){
        System.out.println("list = [" + list + "]");
        List<String> listNew=new ArrayList<>(new HashSet(list));
        System.out.println("listNew = [" + listNew + "]");
    }

    //去重并按自然顺序排序
    public static void pastLeep5(List<String> list){
        System.out.println("list = [" + list + "]");
        List<String> listNew=new ArrayList<>(new TreeSet<String>(list));
        System.out.println("listNew = [" + listNew + "]");
    }


二、对象去重方法:
package com.hcycom.iams.ncolog;

import java.util.*;
import static java.util.Comparator.comparingLong;
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.toCollection;

public class Test {

    public static void main(String[] args) {
        Data data1 = new Data(1,"aaaa");
        Data data2 = new Data(2,"dddd");
        Data data3 = new Data(1,"vvvv");
        Data data4 = new Data(4,"rrrr");
        Data data5 = new Data(1,"ssss");
        List<Data> list = Arrays.asList(data1,data2,data3,data4,data5);
        List<Data> l = test2(list);
        System.out.println(Arrays.toString(l.toArray()));

    }

    //对象去重
    public static List<Data> test2(List<Data> list){
        List<Data> unique = list.stream().collect(
                collectingAndThen(
                        toCollection(() -> new TreeSet<>(comparingLong(Data::getId))), ArrayList::new)
        );
        return unique;
    }
}

// 实体对象
class Data{

    private int id;
    private String name;

    public Data(int id, String name) {
        this.id = id;
        this.name = name;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Data{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}
Flutter List数组避免插入重复数据的实现 List 具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引) 常见列表 1、定长列表 默认值null 例如:List fixedLengthList = new List(2)、List fixedLengthList = new List(8) List fixedLengthList = new List(2); for(int i=0;i<2;i++){ print(索引为${i}的值${fixedLengthList[i]}); } I/flutter ( 9251): 索引为0的值null I/flutter ( 9251 立即下载

相关推荐

基于单片机红外线遥控Proteus仿真电路发射接收

*单片机设计介绍,基于单片机红外线遥控Proteus仿真电路发射接收。

2201_75940997的博客 3943

flutter 数组数据去重终极解决方案

在 Flutter 应用程序开发中,处理数据的去重是一个常见的任务。本文将详细介绍 Flutter 中的各种数据去重方法,包括使用 Set、fold 方法、where 方法、自定义函数以及使用第三方库等不同的技巧。每种方法都将提供示例代码和解释,帮助您理解和应用这些方法,以满足不同的需求。数组去重是指从一个包含重复元素的数组中,将重复的元素去除,得到一个只包含唯一元素的新数组。在去重后的数组中,每个元素都是唯一的,不会存在重复的情况。通常情况下,数组去重是为了简化数据,减少重复信息或提高数据处理的效率。

半身风雪 3755

Python+whisper/vosk实现语音识别

Whisper 是一个由 OpenAI 开发的人工智能语音识别模型,它能够将语音转换为文本。Whisper 模型特别之处在于它的设计目标是能够理解和转录多种语言的语音,包括但不限于英语。Whisper 模型在训练时使用了大量不同语言的语音数据,这使得它具有很好的跨语言能力。Vosk 是一个开源的语音识别库,它可以在离线环境下工作,不依赖于任何外部服务。Vosk 基于Kaldi语音识别框架,支持多种语言,包括中文。Vosk提供了多种预训练模型,可以根据需求选择适合的模型进行语音识别。

weixin_44458771的博客 5942

Flutter: List去重

利用List提供的toSet()去重,再转回List: calculatedRectList = calculatedRectList.toSet().toList();

Crystal_xing的专栏 2637

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

【软考高级架构设计师】——2025年上半年软考真题(回忆版)

a)异构计算和算法优化b)资源抽象和容器控制c)安全和隔离(大致是这个意思)

小志的博客 4837

Flutter List数组避免插入重复数据

志当存高远。——诸葛亮 List 具有一定长度存在索引的对象集合(长度为0不存在索引,长度>0存在索引)

我很好 8147

一文看懂EMMC原理及工作过程

CMD:用于设备初始化和命令传输的双向通道, CMD信号有2种工作模式:1#:漏极开路--->用于初始化模式2#:推拉--->用于快速命令传输其中命令从eMMC主机控制器发送到eMMC设备,响应从设备发送到主机。DAT [7:0]:双向数据信号,模式包括:1(DAT0);默认情况下,通电或重置后,只有DAT0用于数据传输。DAT信号在推挽模式下工作,eMMC设备包括数据线DAT1-DAT7的内部上拉。进入4位模式后,设备立即断开线路DAT1、DAT2和DAT3的内部上拉;

Airer_00的博客 2040

List集合对象去重及按属性去重的8种方法

最近在写一些关于java基础的文章,但是我又不想按照教科书的方式去写知识点的文章,因为意义不大。基础知识太多了,如何将这些知识归纳总结,总结出优缺点或者是使用场景才是对知识的升华。所以我更想把java相关的基础知识进行穿针引线,进行整体上的总结。 总结java中创建并写文件的5种方式 总结java从文件中读取数据的6种方法 总结java创建文件夹的4种方法及其优缺点 总结java中删除文件或文件夹的7种方法 总结java中文件拷贝剪切的5种方式 比如之前我已经写了上面的这些内容,如果对java基础知识.

字母哥博客 3万+

34 python 时间和日期

介绍python里时间和日期的常用方法,以及案例,还有注意事项。

水滴爬呀爬 347

用 Docker 一键部署 SillyTavern酒馆 mac/windows/linux通用教程,我再也不手动折腾了!

本文介绍了如何使用 Docker 一键部署 SillyTavern 项目,适用于 Mac、Windows 和 Linux 系统。SillyTavern 是一个本地部署的大语言模型聊天界面,支持多种插件和扩展。文章详细说明了安装 Docker、拉取项目、启动容器、配置白名单、启用插件等步骤,并提供了常见问题的解决方法。通过 Docker 部署,用户可以避免繁琐的手动配置,快速搭建和运行 SillyTavern,适合希望简化部署流程的用户。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2627

如何将List集合去重

众所周知List集合中的元素是有序的,但是List中的元素同样是可以重复的,那么我们应该怎么在List集合中去重呢? 方法一: 对于方法一而言,这也许是一个小窍门。利用的是Set集合中不允许出现重复的元素。 废话也不多说,请看代码: package com.yonyou.test; import java.util.HashSet; import java.util.List; import...

xiaoxuan1025的博客 4930

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

zemax像差参数Ray Fan/Spot Diagram/MTF/....讲解三

weixin_72050316的博客 1387

Java中List集合对象去重及按属性去重

请直接移步原文。

tellmewhoisi的博客 1923

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java中List集合对象去重及按属性去重的8种方法

一、本文描述 这一篇文章写一下List集合元素去重的8种方法,实际上通过灵活的运用、排列组合不一定是8种,可能有18种方法。 对象元素整体去重的4种方法 按照对象属性去重的4种方法 为了在下文中进行测试内容讲解,我们先做一些初始化数据 public class ListRmDuplicate { private List<String> list; private List<Player> playerList; @BeforeEach public void set

lck_csdn的博客 4万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java中List集合去重的几种方式

准备数据: // 准备数据 List&lt;String&gt; list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); list.add("c"); list.add("b"); list.add("a"); 1. 利用HashSet去重 // 利用list中的元素创建HashSet集合,

脚印 3万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java中List集合对象去重及按属性去重七种方法

Java中List集合对象去重及按属性去重七种方法

浮沉往事意朦胧 1万+

List集合去重的三种方法

在实际开发的时候,我们经常会碰到这么一个困难:一个集合容器里面有很多重复的对象,里面的对象没有主键,但是根据业务的需求,实际上我们需要根据条件筛选出没有重复的对象。 比较暴力的方法,就是根据业务需求,通过两层循环来进行判断,没有重复的元素就加入到新集合中,新集合中已经有的元素就跳过。 操作例子如下,创建一个实体对象PenBean,代码如下: /** *笔实体 */ publicclassPenBean{ /**类型*/ privateStringtype; ...

一蓑烟雨任平生 1万+

面试:list集合去重

list集合去重方法 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录list集合去重方法前言一、HashSet去重二、list遍历再给一个新的list(用contains)三、set去重 前言 list常见的几种去重方法,昨天面试被问到出了用for遍历还有什么方法可以去重,很尴尬,没答上来,所以今天写在博客上,加深学习。 提示:以下是本篇文章正文内容,下面案例可供参考 一、HashSet去重 HashSet在存放对象的时候会判断是否为同一对象,HashSet是乱序,所以要存

hsy1969864869的博客 792

【List集合去重的5种方式】

List集合去重的5种方式 1、双重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)); } } } 2、利用List集合的contains方法循环遍历,清空,重新添加 private static voi

Jie975的博客 1万+

阿里字节技术大佬都在用的List集合去重方案!

本文介绍了Java中List集合去重的多种方法。对于基本数据类型和String类型,可通过遍历、Set集合转换或Stream API的distinct()方法实现去重。当List元素为对象时,需重写equals()和hashCode()方法才能正确去重。文章详细展示了使用HashSet、TreeSet、LinkedHashSet保持不同顺序的去重方案,并提供了基于Stream API按对象属性去重的实现方式,包括单属性和多属性组合去重。针对对象去重场景,强调必须正确实现equals()和hashCode()

JavaEdge全是干货的技术号 1901

使用Set集合对List集合进行去重

使用Set集合对List集合进行去重前段时间正好遇到这样一个需求:我们的支付系统从对方系统得到存储明细对象的List集合,存储的明细对象对象的明细类简化为如下TradeDetail类,需求是这样的,我要对称List集合进行去重,这里的去重的意思是只要对象对象中的accountNo账号是相同的,就认为明细对象是相同的,去重之后要求是List集合或者Set集合。在进行...

weixin_40005760的博客 644
上一篇: Restful API
下一篇: List集合的排序
CaculateByte
博客等级 码龄9年 7粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值