ArrayList是Java中最常用的集合类型之一。它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序。在编码时我们经常会遇到那种必须从已建成的ArrayList中删除重复元素的要求。这篇文章将给出两种从ArrayList中删除重复元素的方法。

方法1:使用HashSet删除ArrayList中重复的元素

在该方法中,我们使用HashSet来删除重复的元素。如你所知,HashSet不允许有重复的元素。我们使用HashSet的这个属性来删除已建成的ArrayList中的重复元素。但是,这种方法有一个缺点。那就是,它会删除ArrayList中元素的插入顺序。这意味着,删除重复的元素后,元素的插入顺序就不对了。先来看下面这个例子。

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
public class Test4 {public static void main(String[] args) {ArrayList<String> arrayList = new ArrayList<String>();arrayList.add("1");arrayList.add("2");arrayList.add("3");arrayList.add("4");arrayList.add("1");arrayList.add("5");arrayList.add("2");arrayList.add(null);arrayList.add(null);// 去重前:[1, 2, 3, 4, 1, 5, 2, null, null]System.out.println("去重前:" + arrayList);// 不保证迭代顺序Set<String> set = new HashSet<String>(arrayList);System.out.println("去重后_无序:" + set);}
}

输出:

去重前:[1, 2, 3, 4, 1, 5, 2, null, null]去重后_无序:[null, 3, 2, 1, 5, 4]

注意输出结果。你会发现,在删除重复元素之后,元素重新洗牌。不再按照插入顺序排列。如果你想在删除重复的元素之后依然保持元素的插入顺序,那么不建议使用此方法。还有另一种方法,可以保证在删除重复的元素之后也不改变元素的插入顺序。那就是使用LinkedHashSet。

方法2:使用LinkedHashSet删除ArrayList中重复的元素

在该方法中,我们使用LinkedHashSet删除ArrayList中重复的元素。正如你知道的,LinkedHashSet不允许重复元素,同时保持元素的插入顺序。LinkedHashSet的这两个属性可以确保在删除ArrayList中的重复元素之后,依然保持元素的插入顺序。参见下面的例子。

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.Set;
public class Test4 {public static void main(String[] args) {ArrayList<String> arrayList = new ArrayList<String>();arrayList.add("1");arrayList.add("2");arrayList.add("3");arrayList.add("4");arrayList.add("1");arrayList.add("5");arrayList.add("2");arrayList.add(null);arrayList.add(null);// 去重前:[1, 2, 3, 4, 1, 5, 2, null, null]System.out.println("去重前:" + arrayList);// 保持元素的插入顺序// 去重后_有序:[1, 2, 3, 4, 5, null]Set<String> set = new LinkedHashSet<String>(arrayList);System.out.println("去重后_有序:" + set);}
}

输出:

去重去重前:[1, 2, 3, 4, 1, 5, 2, null, null]去重后_有序:[1, 2, 3, 4, 5, null]

注意输出。你可以发现在删除ArrayList中的重复元素后,依然保持了元素的插入顺序。

译文链接:http://www.codeceo.com/article/java-arraylist-remove-duplicate-ele.html
英文原文:How To Remove Duplicate Elements From ArrayList In Java?
翻译作者:码农网 – 小峰

转载于:https://blog.51cto.com/programmer/1685682

Java删除ArrayList中的重复元素的2种方法相关推荐

  1. java arraylist 删除回车符_2种Java删除ArrayList中的重复元素的方法

    这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet. ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素, ...

  2. java里arraylist删除节点方法_Java之——删除ArrayList中的反复元素的2种方法

    ArrayList是Java中最经常使用的集合类型之中的一个.它同意灵活加入多个null元素,反复的元素,并保持元素的插入顺序.在编码时我们经常会遇 到那种必须从已建成的ArrayList中删除反复元 ...

  3. python 字符串删除重复_Python删除list里的重复元素有几种方法?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  4. Python删除list里面的重复元素的俩种方法

    1.使用set函数  In [116]: a=[1,2,3,2,1,3,4,5,6,5]In [117]: set(a) Out[117]: {1, 2, 3, 4, 5, 6} 2.使用字典函数 I ...

  5. python删除列表中的重复元素并保持相对顺序不变

    python删除列表中的重复元素并保持相对顺序不变 从列表中删除重复项以便所有元素都是唯一的同时保持原有相对顺序不变 对于列表我们可以使用如下方法: l1 = [1,7,7,8,5,5,4] l2 = ...

  6. python 删除链表中的重复元素

    | 删除链表中的重复元素 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 . 返回同样按升序排列的结果链表. 输入:head = [1,1, ...

  7. VB 删除数组中的重复元素

    VB 删除数组中的重复元素,当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除.并且返回结果数组. 以下这个函数只支持一维数组. Function Array_unique(Arr As V ...

  8. 从Ruby中删除数组中的重复元素

    本文翻译自:Remove duplicate elements from array in Ruby I have a Ruby array which contains duplicate elem ...

  9. 复习删除数组中的重复元素

    //如何删除数组中的重复元素 #include<stdio.h> int main(){     int n;     scanf("%d",&n);      ...

最新文章

  1. linux share目录 多个机器访问,如何在linux下网上邻居访问另一台机windows共享的目录?(急)...
  2. jQuery对象插件封装步骤
  3. 数据结构---排序算法的总结
  4. python中从键盘输入的代码_python如何从键盘获取输入实例
  5. Oct 12: Patch Set Update Released
  6. 【Oracle】Oracle通过表名查询触发器
  7. U盘无法格式化,变成8M,RAW格式,0字节的U盘修复教程
  8. 免费好用的钉钉内网穿透
  9. 强化学习Q-learning简单理解
  10. js判断数组是否相等的方法
  11. 生产企业全流程生产管控_如何通过创建流程使生产率提高10倍
  12. python中data是什么意思_python中的data[:, :-1]和data[:, -1]什么意思?
  13. Gluster源代码阅读3--MGMT Xlator
  14. 乡镇特色产业发展调研报告2
  15. 进阿里一年中最好的机会
  16. badboy设置中文_badboy中文手册
  17. Wonderful Coloring - 2
  18. js 鼠标悬浮div显示tip,离开tip消失,不用单独写鼠标离开事件
  19. 美国某超市销售数据分析
  20. 使用 Python 和 Bitly 缩短您的 URL

热门文章

  1. 03-03 java 顺序语句结构,选择结构if语句
  2. PHP memcached memcache 扩展安装
  3. 121 项目 024 笔记向 内省机制
  4. 【Python】supervisor 工具介绍
  5. [翻译] JTBorderDotAnimation
  6. java thread与runnable联系区别
  7. PowerShell定时记录操作系统行为
  8. 让Jackson JSON生成的数据包含的中文以unicode方式编码
  9. 想要在Mac 上运行 Windows 程序 不需要虚拟机也可以
  10. 微信小程序开始试点广告功能,一个新的广告竞价体系将要诞生