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 在内部完成两件事: 删除重复数据 保持添加到其中的数据的顺序 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 达林顿晶体管,连接的阵列,非常适合逻辑接口电平数字电路(例 如 TTL,CMOS 或PMOS 上/NMOS)和较高的电流/电压,如电灯电磁阀,继电器,打印机或其他类似的负…...
若依springboot接入feign踩坑记录
问题情境: 简单的项目采用了若依的前后端分离版本单体应用,之前采用forest请求调用第三方接口,改为feign接口调用后,引入feign报错 error creating bean with name ‘configurationPropertiesbean’ 解决方案: 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每一篇目具体: Opencv(1)读取与图像操作 Opencv(2)绘图与图像操作 Opencv(3)详解霍夫变换 Opencv(4)详解轮廓 Opencv(5)平滑处理 具体Opencv相关demo代码欢迎访问我的github仓库(包含python和c代码) demo代码 文章目录 Opencv一…...
Python装饰器的使用详解
目录 1、函数装饰器 1.1、闭包函数 1.2、装饰器语法 1.3、装饰带参数的函数 1.4、被装饰函数的身份问题 1.4.1、解决被装饰函数的身份问题 1.5、装饰器本身携带/传参数 1.6、嵌套多个装饰器 2、类装饰器 装饰器顾名思义作为一个装饰的作用,本身不改变被装…...
基于springboot+vue的党员教育和管理系统
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 主要内容:毕业设计(Javaweb项目|小程序|Pyt…...
三个伪类让你的CSS代码更加优雅
公众号:程序员白特,欢迎一起交流学习~ 原文:CSS整洁之道——:is()、:where()和:has()的用法 - 掘金 (juejin.cn) 让我们写出优雅界面的CSS,它也总是把自己进化得更加优雅。 今天我们花5分钟时间学习三个优雅的CSS伪类:…...
幻兽帕鲁联机服务器搭建
幻兽帕鲁联机服务器搭建 开通云服务器 云主机购买|香港云服务器|香港云主机|美国云服务器|弹性云主机租用尽在-特网科技 建议选择4核心 16G内存 10M带宽,可满足6-15人游玩 下载安装脚本 windows系统: 下载 http://downinfo.myhostadmin.net/palserver/install…...
京东商品优惠券API获取商品到手价
item_get_app-获得JD商品详情原数据 公共参数 请求地址: jd/item_get_app 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[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技术概论(3) Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...
死记硬背spring bean 的生命周期
1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容…...
海外网红营销策略:如何将红人粉丝有效转化为品牌忠实粉丝?
在数字化时代,社交媒体已经成为品牌推广和营销的不可或缺的一部分。随着海外网红营销的崛起,品牌们纷纷将目光投向这个新兴的营销领域。然而,仅仅依赖网红的影响力来达到品牌传播的效果是不够的,更为重要的是如何将网红的粉丝转化…...
java之Bean对象
1. 什么是Bean? Bean被实例化的,是被Spring框架所管理的Java对象。 Spring容器会自动完成Bean的实例化。将所创建的的Bean自动注入到Ioc容器中以供调用。 spring框架中 IOC容器中管理的对象就是Bean对象 2. 第三方bean Bean 因为第三方bean࿰…...
Flink——芒果TV的实时数仓建设实践
目录 一、芒果TV实时数仓建设历程 1.1 阶段一:Storm/Flink JavaSpark SQL 1.2 阶段二:Flink SQLSpark SQL 1.3 阶段三:Flink SQLStarRocks 二、自研Flink实时计算调度平台介绍 2.1 现有痛点 2.2 平台架构设计 三、Flink SQL实时数仓分…...
卸载云服务器上的 MySQL 数据库
执行以下命令以停止 MySQL 服务: sudo service mysql stop执行以下命令以彻底卸载 MySQL: 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)SPI通信脚 SCLO:串行时钟sclk。MTSR:主向从方向数据MTSR(主发送从接收)。MRST:从向主方向数据MRST(主接收从发送)。SLSO:从选择信号SLS,支持16路片选控制。 2) SPI状态机 2.SPI通信波形 在主…...
SpringBoot快速入门(黑马学习笔记)
需求 需求:基于SpringBoot的方式开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 开发步骤 第一步:创建SpringBoot工程项目 第二步:定义HelloController类,添加方…...
新手避坑指南:用PHPStudy搭建DVWA靶场时,80端口被占用的3种解决方法
新手避坑指南:用PHPStudy搭建DVWA靶场时,80端口被占用的3种解决方法 在网络安全学习的道路上,DVWA(Damn Vulnerable Web Application)靶场无疑是一个极佳的实践平台。它模拟了各种常见的Web安全漏洞,让学习…...
PyTorch加载.pth文件报错?别慌!教你区分‘整个模型’和‘仅参数’的两种加载方式
PyTorch模型加载实战:从.pth文件解析到迁移学习避坑指南 当你从GitHub下载了一个PyTorch预训练模型,满心欢喜地准备在自己的项目中使用时,突然遇到KeyError: missing_keys或RuntimeError: Error(s) in loading state_dict这类错误——这种场景…...
如何快速安装Switch大气层系统:完整指南与性能优化技巧
如何快速安装Switch大气层系统:完整指南与性能优化技巧 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要为你的Nintendo Switch解锁无限可能吗?大气层系统&#…...
前端响应式设计进阶:从移动优先到自适应
前端响应式设计进阶:从移动优先到自适应 一、引言:别再把响应式设计当适配 "响应式设计不就是多写几个媒体查询吗?"——我相信这是很多前端开发者常说的话。 但事实是: 好的响应式设计可以提升移动用户体验50%以上响应式…...
为什么你的RAG+Prompt总是效果打折?4个被低估的上下文注入漏洞及修复公式
第一章:Shell脚本的基本语法和命令 2026奇点智能技术大会(https://ml-summit.org) Shell脚本是Linux/Unix系统自动化任务的核心工具,它通过解释执行一系列命令来完成重复性操作、环境配置、服务管理等关键任务。理解其基本语法结构、变量机制、控制流与…...
Blender 3MF插件:从设计到3D打印的无缝桥梁搭建指南
Blender 3MF插件:从设计到3D打印的无缝桥梁搭建指南 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾在Blender中精心设计的3D模型,在导出…...
Switch离线观影终极指南:wiliwili本地播放全攻略
Switch离线观影终极指南:wiliwili本地播放全攻略 【免费下载链接】wiliwili 第三方B站客户端,目前可以运行在PC全平台、PSVita、PS4 、Xbox 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili 还在为Switch只能玩…...
Flowise生产就绪指南:Health Check+自动重启+日志轮转配置
Flowise生产就绪指南:Health Check自动重启日志轮转配置 1. 为什么需要生产环境配置? 当你用Flowise搭建好AI工作流后,接下来最重要的一步就是确保它能在生产环境中稳定运行。想象一下:你的客服机器人正在处理客户咨询ÿ…...
如何在AWS/GCP/Azure上使用Porter快速部署Kubernetes集群:终极指南
如何在AWS/GCP/Azure上使用Porter快速部署Kubernetes集群:终极指南 【免费下载链接】porter-archive Kubernetes powered PaaS that runs in your own cloud. 项目地址: https://gitcode.com/gh_mirrors/po/porter-archive Porter是一个基于Kubernetes的PaaS…...
数据库备份恢复:物理备份与逻辑备份的策略
数据库备份恢复:物理备份与逻辑备份的策略 在数字化时代,数据已成为企业的核心资产,数据库备份与恢复策略的制定直接关系到业务连续性和数据安全。物理备份与逻辑备份是两种主流的备份方式,各有优劣,适用于不同场景。…...
