java List去除重复数据的五种方式
以下介绍五种-不同的方法去除Java中ArrayList中的重复数据
1.使用LinkedHashSet删除arraylist中的重复数据
**LinkedHashSet**是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事:
- 删除重复数据
- 保持添加到其中的数据的顺序
Java示例使用LinkedHashSet删除arraylist中的重复项。在给定的示例中,numbersList
是包含整数的arraylist,其中一些是重复的数字,例如1,3和5.我们将列表添加到LinkedHashSet,然后将内容返回到列表中。结果arraylist没有重复的整数。
????public?static?void?main(String[] args)?{int List[] =[1,?1,?2,?3,?3,?3,?4,?5,?6,?6,?6,?7,?8]
????????LinkedHashSet<Integer> hashSet =?new?LinkedHashSet<>(List);
????????ArrayList<Integer> listWithoutDuplicates =?new?ArrayList<>(hashSet);
????????System.out.println(listWithoutDuplicates);????}
输出结果
[1,?2,?3,?4,?5,?6,?7,?8]
2.使用java8新特性stream进行List去重
要从arraylist中删除重复项,我们也可以使用java 8 stream api。使用steam的distinct()
方法返回一个由不同数据组成的流,通过对象的**equals()**方法进行比较。
收集所有区域数据List
使用[Collectors.toList()](https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html#toList--)
。
Java程序,用于_在不使用Set的情况下从java中的arraylist中删除重复项_。
public?static?void?main(String[] args){int List[] =[1,?1,?2,?3,?3,?3,?4,?5,?6,?6,?6,?7,?8]
????????List<Integer> listWithoutDuplicates = List.stream().distinct().collect(Collectors.toList());
????????System.out.println(listWithoutDuplicates);
????}
输出结果
[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循环去重
public static void main(String[] args) {int List[] = [1, 1, 2, 3, 3, 3, 4, 5, 6, 6, 6, 7, 8]for (int i = 0; i < List.size(); i++) {for (int j = i + 1; j < List.size(); j++) {if (List.get(i) == List.get(j)) {List.remove(j);j--;}}}
}
java List去除重复数据的五种方式相关推荐
- Java 去除重复数据的五种方式
1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法.LinkedHashSet在内部完成两件事: 删除重复 ...
- List 去除重复数据的五种方式,舒服~
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 多纤果冻 来源 | https://blog. ...
- List去除重复数据的五种方式
作者:多纤果冻 blog.csdn.net/qq_37939251/article/details/90713643 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用 ...
- list过滤重复数据java_java中List去除重复数据的五种方式
在使用java编码中,我们会经常遇到让List对象去重,最常见的是ArrayList去除重复的数据, 看似很简单的东西,其实里面是有很多学问的,下面介绍不同的方法去除java中ArrayList中的重 ...
- List去除重复数据的几种方式和性能比较
以下介绍5种去除Java中ArrayList中的重复数据 1. 使用LinkedHashSet删除arrayList中的重复数据 LinkHashSet是在一个ArrarList删除重复数据的最佳方法 ...
- php随机数字不重复使等式成立_php随机数不重复生成的五种方式
在前一篇文章中我介绍了php随机数的生成方法,我们都知道php随机数不管是在开发中,还是在移动应用中,都是不可少的一部分,平时日常开发中经常会跟php随机数打交道,那么今天就给大家介绍php随机数不重 ...
- SQL中去除重复数据的几种方法,我一次性都告诉你
使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析. 以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介 ...
- Android数据存储五种方式总结
1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解 ...
- android mysql储存动态数据_Android数据存储五种方式总结
本文介绍Android平台进行数据存储的五大方式,分别如下: 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据 适用范围:保存少量的数据,且这些数据的格式非常简单 ...
最新文章
- Linux的fork实现原理,【Linux】Fork炸弹详解
- msicuu.exe (msizap.exe),程序的作用
- 【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改
- SpringBoot简单集成Redis,实现简单查询
- 如何用python实现自动化_如何使用Python实现自动化水军评论
- Azure已成为微软业绩的顶梁柱
- Locations Section of OpenCascade BRep
- 肺功能曲线图怎么看_【家装干货】有人说是鸡肋,有人说是功能升级,卫生间装双人洗漱台,你怎么看?...
- [css] 使用css实现对话气泡的效果
- 帧同步_帧同步和状态同步该怎么选(上)
- 国科大prml12-半监督学习
- AES算法重点详解和实现
- JSON中的JSON.parseArray()方法、JSON.parseObject()方法和JSON.tojsonString()方法
- matlab指令vpa(j10),matlab中vpa函数
- 谈谈Tensorflow的Batch Normalization
- 新出版书籍《Python预测之美:数据分析与算法实战》,送书活动!参与即可机会,获得一本实体书,中奖后可填写地址寄送。
- 网络游戏引擎BIGWORLD的内容介绍
- 三相桥式全控整流电路simulink仿真_维修电工实训仿真软件-电工入门与提高
- 不同品牌路由器无线桥接的设置方法
- python 文件读取
热门文章
- 四舍、六入、五凑偶之Math.Round()
- 用Python批量替换多个Word文件中的文字
- 杭州ALIENWARE外星人电脑(大悦城旗舰店),玩起来就是不一样
- python字典进行大写转化_python 字符串转大写_Python字符串大写()
- app inventor学习平台和AI伴侣
- Linux——基于GPU的超低延迟远程桌面Parsec
- [重装系统系列]fcitx 小企鹅输入法 安装 in ubuntu 15.04
- 风影ASP.NET基础教学16 母版页
- 14-1 没名字
- 今日的质量,明日的市场--谈谈软件登记测试