当前位置: 首页 > news >正文

List去除重复数据的五种方式

1、使用 LinkedHashSet 删除 arraylist 中的重复数据

LinkedHashSet 是在一个 ArrayList 删除重复数据的最佳方法。LinkedHashSet 在内部完成两件事:

删除重复数据

保持添加到其中的数据的顺序

Java 示例使用 LinkedHashSet 删除 arraylist 中的重复项。在给定的示例中,numbersList 是包含整数的
arraylist,其中一些是重复的数字。

例如 1,3 和 5. 我们将列表添加到 LinkedHashSet,然后将内容返回到列表中。结果 arraylist 没有重复的整数。


import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedHashSet;public class ArrayListExample
{public static void main(String[] args){ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));System.out.println(numbersList);LinkedHashSet<Integer> hashSet = new LinkedHashSet<>(numbersList);ArrayList<Integer> listWithoutDuplicates = new ArrayList<>(hashSet);System.out.println(listWithoutDuplicates);}
}```
# 输出结果
```javascript[1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8][1, 2, 3, 4, 5, 6, 7, 8]

2、使用 java8 新特性 stream 进行 List 去重

要从 arraylist 中删除重复项,我们也可以使用 java 8 stream api。使用 steam 的 distinct()
方法返回一个由不同数据组成的流,通过对象的 equals()方法进行比较。

收集所有区域数据 List 使用 Collectors.toList()。

Java 程序,用于在不使用 Set 的情况下从 java 中的 arraylist 中删除重复项。


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;public class ArrayListExample
{public static void main(String[] args){ArrayList<Integer> numbersList = new ArrayList<>(Arrays.asList(1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8));System.out.println(numbersList);List<Integer> listWithoutDuplicates = numbersList.stream().distinct().collect(Collectors.toList());System.out.println(listWithoutDuplicates);}}

输出结果


[1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8][1, 2, 3, 4, 5, 6, 7, 8]

3、利用 HashSet 不能添加重复数据的特性 由于 HashSet 不能保证添加顺序,所以只能作为判断条件保证顺序:


private static void removeDuplicate(List<String> list) {HashSet<String> set = new HashSet<String>(list.size());List<String> result = new ArrayList<String>(list.size());for (String str : list) {if (set.add(str)) {result.add(str);}}list.clear();list.addAll(result);
}

4、利用 List 的 contains 方法循环遍历, 重新排序, 只添加一次数据, 避免重复:


private static void removeDuplicate(List<String> list) {List<String> result = new ArrayList<String>(list.size());for (String str : list) {if (!result.contains(str)) {result.add(str);}}list.clear();list.addAll(result);
}

5、双重 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)); } 
} 

相关文章:

List去除重复数据的五种方式

1、使用 LinkedHashSet 删除 arraylist 中的重复数据 LinkedHashSet 是在一个 ArrayList 删除重复数据的最佳方法。LinkedHashSet 在内部完成两件事&#xff1a; 删除重复数据 保持添加到其中的数据的顺序 Java 示例使用 LinkedHashSet 删除 arraylist 中的重复项。在给定的示例…...

VUE3自定义文章排行榜的简单界面

文章目录 一、代码展示二、代码解读三、结果展示 一、代码展示 <template><div class"article-ranking"><div class"header"><h2 class"title">{{ title }}</h2></div><div class"ranking-list&qu…...

七通道NPN 达林顿管GC2003,专为符合标准 TTL 而制造,最高工作电压 50V,耐压 80V

GC2003 内部集成了 7 个 NPN 达林顿晶体管&#xff0c;连接的阵列&#xff0c;非常适合逻辑接口电平数字电路&#xff08;例 如 TTL&#xff0c;CMOS 或PMOS 上/NMOS&#xff09;和较高的电流/电压&#xff0c;如电灯电磁阀&#xff0c;继电器&#xff0c;打印机或其他类似的负…...

若依springboot接入feign踩坑记录

问题情境&#xff1a; 简单的项目采用了若依的前后端分离版本单体应用&#xff0c;之前采用forest请求调用第三方接口&#xff0c;改为feign接口调用后&#xff0c;引入feign报错 error creating bean with name ‘configurationPropertiesbean’ 解决方案&#xff1a; spri…...

Lumerical Script ------ Error: <文件目录> line x:syntax error

Lumerical Script ------ Error: <文件目录> line x:syntax error 引言正文引言 在 Lumerical Script ------ Error: line 0: syntax error 一文中我们介绍了一种常见的错误提示信息。这里,我们使用类似的代码,介绍另一种提示错误提示信息。 正文 有时候,当我们在…...

Opencv基础与学习路线

Opencv Opencv每一篇目具体&#xff1a; Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 Opencv(5)平滑处理 具体Opencv相关demo代码欢迎访问我的github仓库&#xff08;包含python和c代码&#xff09; demo代码 文章目录 Opencv一…...

Python装饰器的使用详解

目录 1、函数装饰器 1.1、闭包函数 1.2、装饰器语法 1.3、装饰带参数的函数 1.4、被装饰函数的身份问题 1.4.1、解决被装饰函数的身份问题 1.5、装饰器本身携带/传参数 1.6、嵌套多个装饰器 2、类装饰器 装饰器顾名思义作为一个装饰的作用&#xff0c;本身不改变被装…...

基于springboot+vue的党员教育和管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…...

三个伪类让你的CSS代码更加优雅

公众号&#xff1a;程序员白特&#xff0c;欢迎一起交流学习~ 原文&#xff1a;CSS整洁之道——:is()、:where()和:has()的用法 - 掘金 (juejin.cn) 让我们写出优雅界面的CSS&#xff0c;它也总是把自己进化得更加优雅。 今天我们花5分钟时间学习三个优雅的CSS伪类&#xff1a…...

幻兽帕鲁联机服务器搭建

幻兽帕鲁联机服务器搭建 开通云服务器 云主机购买|香港云服务器|香港云主机|美国云服务器|弹性云主机租用尽在-特网科技 建议选择4核心 16G内存 10M带宽&#xff0c;可满足6-15人游玩 下载安装脚本 windows系统: 下载 http://downinfo.myhostadmin.net/palserver/install…...

京东商品优惠券API获取商品到手价

item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,i…...

Flutter Version Manager (FVM): Flutter的版本管理终极指南

Flutter笔记 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…...

Docker技术概论(3):Docker 中的基本概念

Docker技术概论&#xff08;3&#xff09; Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...

死记硬背spring bean 的生命周期

1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象&#xff0c;在这个对象没有任何引用的时候&#xff0c;会被gc给回收掉。而对于spring而言&#xff0c;它本身存在一个Ioc容器&#xff0c;就是用来管理对象的&#xff0c;而对象的生命周期也完全由这个容…...

海外网红营销策略:如何将红人粉丝有效转化为品牌忠实粉丝?

在数字化时代&#xff0c;社交媒体已经成为品牌推广和营销的不可或缺的一部分。随着海外网红营销的崛起&#xff0c;品牌们纷纷将目光投向这个新兴的营销领域。然而&#xff0c;仅仅依赖网红的影响力来达到品牌传播的效果是不够的&#xff0c;更为重要的是如何将网红的粉丝转化…...

java之Bean对象

1. 什么是Bean&#xff1f; Bean被实例化的&#xff0c;是被Spring框架所管理的Java对象。 Spring容器会自动完成Bean的实例化。将所创建的的Bean自动注入到Ioc容器中以供调用。 spring框架中 IOC容器中管理的对象就是Bean对象 2. 第三方bean Bean 因为第三方bean&#xff0…...

Flink——芒果TV的实时数仓建设实践

目录 一、芒果TV实时数仓建设历程 1.1 阶段一&#xff1a;Storm/Flink JavaSpark SQL 1.2 阶段二&#xff1a;Flink SQLSpark SQL 1.3 阶段三&#xff1a;Flink SQLStarRocks 二、自研Flink实时计算调度平台介绍 2.1 现有痛点 2.2 平台架构设计 三、Flink SQL实时数仓分…...

卸载云服务器上的 MySQL 数据库

执行以下命令以停止 MySQL 服务&#xff1a; sudo service mysql stop执行以下命令以彻底卸载 MySQL&#xff1a; sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get autoremove sudo apt-get autoclean 这将删除 MySQL 数据库服务器、客…...

AUTOSAR SPI详解

1.SPI通信 1&#xff09;SPI通信脚 SCLO&#xff1a;串行时钟sclk。MTSR&#xff1a;主向从方向数据MTSR(主发送从接收)。MRST&#xff1a;从向主方向数据MRST(主接收从发送)。SLSO&#xff1a;从选择信号SLS&#xff0c;支持16路片选控制。 2) SPI状态机 2.SPI通信波形 在主…...

SpringBoot快速入门(黑马学习笔记)

需求 需求&#xff1a;基于SpringBoot的方式开发一个Web应用&#xff0c;浏览器发起请求/hello后&#xff0c;给浏览器返回字符串"Hello World~"。 开发步骤 第一步&#xff1a;创建SpringBoot工程项目 第二步&#xff1a;定义HelloController类&#xff0c;添加方…...

从源码到镜像:手把手教你定制并容器化FastGPT开发环境

1. 为什么需要定制FastGPT开发环境&#xff1f; FastGPT作为一款开源的AI应用框架&#xff0c;官方提供的标准镜像虽然开箱即用&#xff0c;但实际开发中总会遇到个性化需求。比如上周我帮一家教育机构部署时&#xff0c;对方要求替换所有品牌标识、调整界面配色&#xff0c;甚…...

如何快速掌握游戏化编程学习:CodeCombat新手完整入门指南

如何快速掌握游戏化编程学习&#xff1a;CodeCombat新手完整入门指南 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat CodeCombat是一款创新的游戏化编程学习平台&#xff0c;将编程教育与角色扮演…...

NR - Slot Configuration: Understanding TDD-UL-DL Patterns and Flexible Symbols

1. 5G NR时隙配置基础&#xff1a;TDD模式的核心逻辑 想象一下双向车道上的红绿灯控制系统——这就是5G NR中TDD&#xff08;时分双工&#xff09;模式的基本工作原理。在无线通信系统中&#xff0c;上下行资源分配就像车道的方向切换&#xff0c;需要精确的时间控制。我参与过…...

深入Armv8.1-M内核:在BK7259上玩转Cortex-M52的TrustZone和Helium加速实战

深入Armv8.1-M内核&#xff1a;在BK7259上玩转Cortex-M52的TrustZone和Helium加速实战 BK7259这颗高度集成的WiFi6/蓝牙双模SoC&#xff0c;凭借双Armv8.1-M Cortex-M52内核的独特架构&#xff0c;正在智能家居、工业控制等领域掀起新一轮的技术革新。作为开发者&#xff0c;我…...

保姆级教程:用Python和Azure Kinect DK搭建你的第一个3D视觉采集站(附完整代码)

从零搭建3D视觉实验室&#xff1a;PythonAzure Kinect DK实战指南 当第一次将Azure Kinect DK从包装盒中取出时&#xff0c;那块神秘的黑色传感器面板总会让人联想到科幻电影中的场景。这款微软研发的深度感知设备&#xff0c;实际上已经成为现代计算机视觉实验室的标准配置—…...

如何快速解决显卡驱动问题:Display Driver Uninstaller终极清理指南

如何快速解决显卡驱动问题&#xff1a;Display Driver Uninstaller终极清理指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers…...

Gemma 3-12b-it多模态能力展示:同一模型完成图像问答+文本摘要+逻辑推理

Gemma 3-12b-it多模态能力展示&#xff1a;同一模型完成图像问答文本摘要逻辑推理 1. 模型简介与核心能力 Gemma 3-12b-it是Google推出的轻量级多模态模型&#xff0c;基于与Gemini模型相同的研究技术构建。这个模型最大的特点是能够同时处理文本和图像输入&#xff0c;并生成…...

技术书籍速读:年度Top 5推荐

——软件测试从业者的专业进阶指南在AI与云原生技术深度重塑软件测试行业的2026年&#xff0c;高效阅读技术书籍已成为测试工程师的核心竞争力。面对自动化测试框架的快速迭代、DevSecOps的全面普及以及AI测试工具的爆发式增长&#xff0c;测试从业者亟需通过科学速读掌握前沿知…...

2026最权威的十大降AI率方案实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当借助DeepSeek来辅助论文写作时&#xff0c;要依照三步流程来操作。首先&#xff0c;凭借其…...

AgentCPM-Report落地指南:Pixel Epic镜像免配置一键部署教程(含Streamlit定制)

AgentCPM-Report落地指南&#xff1a;Pixel Epic镜像免配置一键部署教程&#xff08;含Streamlit定制&#xff09; 1. 产品概述 Pixel Epic是一款基于AgentCPM-Report大模型构建的研究报告辅助终端&#xff0c;将枯燥的科研过程转化为充满游戏感的像素RPG体验。这款工具特别适…...