以下介绍五种-不同的方法去除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去除重复数据的五种方式相关推荐

  1. Java 去除重复数据的五种方式

    1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法.LinkedHashSet在内部完成两件事: 删除重复 ...

  2. List 去除重复数据的五种方式,舒服~

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 多纤果冻 来源 | https://blog. ...

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

    作者:多纤果冻 blog.csdn.net/qq_37939251/article/details/90713643 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用 ...

  4. list过滤重复数据java_java中List去除重复数据的五种方式

    在使用java编码中,我们会经常遇到让List对象去重,最常见的是ArrayList去除重复的数据, 看似很简单的东西,其实里面是有很多学问的,下面介绍不同的方法去除java中ArrayList中的重 ...

  5. List去除重复数据的几种方式和性能比较

    以下介绍5种去除Java中ArrayList中的重复数据 1. 使用LinkedHashSet删除arrayList中的重复数据 LinkHashSet是在一个ArrarList删除重复数据的最佳方法 ...

  6. php随机数字不重复使等式成立_php随机数不重复生成的五种方式

    在前一篇文章中我介绍了php随机数的生成方法,我们都知道php随机数不管是在开发中,还是在移动应用中,都是不可少的一部分,平时日常开发中经常会跟php随机数打交道,那么今天就给大家介绍php随机数不重 ...

  7. SQL中去除重复数据的几种方法,我一次性都告诉你​

    使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析. 以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介 ...

  8. Android数据存储五种方式总结

    1 使用SharedPreferences存储数据     2 文件存储数据       3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解 ...

  9. android mysql储存动态数据_Android数据存储五种方式总结

    本文介绍Android平台进行数据存储的五大方式,分别如下: 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据 适用范围:保存少量的数据,且这些数据的格式非常简单 ...

最新文章

  1. Linux的fork实现原理,【Linux】Fork炸弹详解
  2. msicuu.exe (msizap.exe),程序的作用
  3. 【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改
  4. SpringBoot简单集成Redis,实现简单查询
  5. 如何用python实现自动化_如何使用Python实现自动化水军评论
  6. Azure已成为微软业绩的顶梁柱
  7. Locations Section of OpenCascade BRep
  8. 肺功能曲线图怎么看_【家装干货】有人说是鸡肋,有人说是功能升级,卫生间装双人洗漱台,你怎么看?...
  9. [css] 使用css实现对话气泡的效果
  10. 帧同步_帧同步和状态同步该怎么选(上)
  11. 国科大prml12-半监督学习
  12. AES算法重点详解和实现
  13. JSON中的JSON.parseArray()方法、JSON.parseObject()方法和JSON.tojsonString()方法
  14. matlab指令vpa(j10),matlab中vpa函数
  15. 谈谈Tensorflow的Batch Normalization
  16. 新出版书籍《Python预测之美:数据分析与算法实战》,送书活动!参与即可机会,获得一本实体书,中奖后可填写地址寄送。
  17. 网络游戏引擎BIGWORLD的内容介绍
  18. 三相桥式全控整流电路simulink仿真_维修电工实训仿真软件-电工入门与提高
  19. 不同品牌路由器无线桥接的设置方法
  20. python 文件读取

热门文章

  1. 四舍、六入、五凑偶之Math.Round()
  2. 用Python批量替换多个Word文件中的文字
  3. 杭州ALIENWARE外星人电脑(大悦城旗舰店),玩起来就是不一样
  4. python字典进行大写转化_python 字符串转大写_Python字符串大写()
  5. app inventor学习平台和AI伴侣
  6. Linux——基于GPU的超低延迟远程桌面Parsec
  7. [重装系统系列]fcitx 小企鹅输入法 安装 in ubuntu 15.04
  8. 风影ASP.NET基础教学16 母版页
  9. 14-1 没名字
  10. 今日的质量,明日的市场--谈谈软件登记测试