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

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

在该方法中。我们使用HashSet来删除反复的元素。

如你所知,HashSet不同意有反复的元素。我们使用HashSet的这个属性来删除已建 成的ArrayList中的反复元素。可是,这样的方法有一个缺点。那就是,它会删除ArrayList中元素的插入顺序。

这意味着。删除反复的元素后,元 素的插入顺序就不正确了。先来看以下这个样例

import java.util.ArrayList;

import java.util.HashSet;

public class MainClass

{

public static void main(String[] args)

{

//Constructing An ArrayList

ArrayList listWithDuplicateElements = new ArrayList();

listWithDuplicateElements.add("JAVA");

listWithDuplicateElements.add("J2EE");

listWithDuplicateElements.add("JSP");

listWithDuplicateElements.add("SERVLETS");

listWithDuplicateElements.add("JAVA");

listWithDuplicateElements.add("STRUTS");

listWithDuplicateElements.add("JSP");

//Printing listWithDuplicateElements

System.out.print("ArrayList With Duplicate Elements :");

System.out.println(listWithDuplicateElements);

//Constructing HashSet using listWithDuplicateElements

HashSet set = new HashSet(listWithDuplicateElements);

//Constructing listWithoutDuplicateElements using set

ArrayList listWithoutDuplicateElements = new ArrayList(set);

//Printing listWithoutDuplicateElements

System.out.print("ArrayList After Removing Duplicate Elements :");

System.out.println(listWithoutDuplicateElements);

}

}

输出:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]

ArrayList After Removing Duplicate Elements :[JAVA, SERVLETS, JSP, J2EE, STRUTS]

注意输出结果。

你会发现,在删除反复元素之后,元素又一次洗牌。不再依照插入顺序排列。假设你想在删除反复的元素之后依旧保持元素的插入顺序,那么不 建议使用此方法。还有还有一种方法,能够保证在删除反复的元素之后也不改变元素的插入顺序。那就是使用LinkedHashSet。

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

在该方法中。我们使用LinkedHashSet删除ArrayList中反复的元素。正如你知道的,LinkedHashSet不同意反复元素, 同一时候保持元素的插入顺序。LinkedHashSet的这两个属性能够确保在删除ArrayList中的反复元素之后。依旧保持元素的插入顺序。

參见以下 的样例。

import java.util.ArrayList;

import java.util.LinkedHashSet;

public class MainClass

{

public static void main(String[] args)

{

//Constructing An ArrayList

ArrayList listWithDuplicateElements = new ArrayList();

listWithDuplicateElements.add("JAVA");

listWithDuplicateElements.add("J2EE");

listWithDuplicateElements.add("JSP");

listWithDuplicateElements.add("SERVLETS");

listWithDuplicateElements.add("JAVA");

listWithDuplicateElements.add("STRUTS");

listWithDuplicateElements.add("JSP");

//Printing listWithDuplicateElements

System.out.print("ArrayList With Duplicate Elements :");

System.out.println(listWithDuplicateElements);

//Constructing LinkedHashSet using listWithDuplicateElements

LinkedHashSet set = new LinkedHashSet(listWithDuplicateElements);

//Constructing listWithoutDuplicateElements using set

ArrayList listWithoutDuplicateElements = new ArrayList(set);

//Printing listWithoutDuplicateElements

System.out.print("ArrayList After Removing Duplicate Elements :");

System.out.println(listWithoutDuplicateElements);

}

}

输出:

ArrayList With Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, JAVA, STRUTS, JSP]

ArrayList After Removing Duplicate Elements :[JAVA, J2EE, JSP, SERVLETS, STRUTS]

注意输出。你能够发如今删除ArrayList中的反复元素后。依旧保持了元素的插入顺序。

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

  1. java定时调度main方法_java相关:Spring中实现定时调度的几种方法

    java相关:Spring中实现定时调度的几种方法 发布于 2020-11-28| 复制链接 本篇文章主要介绍了Spring中实现定时调度示例,可以在无人值守的时候系统可以在某一时刻执行某些特定的功能 ...

  2. 计算机启动应用程序的方法,excel的程序_Excel2010中启动应用程序的三种方法

    使用Excel时,需要先启动应用程序,怎么去进行操作启动它?今天,学习啦小编就教大家在Excel2010中启动应用程序的三种方法. Excel2010中启动应用程序的三种步骤如下: 1.开始菜单 在桌 ...

  3. C语言中调用数组元素的三种方法:下标法、数组名法、指针法

    /*调用数组元素的三种方法:下标法.数组名法.指针法*/ #include<stdio.h> int main() {int a[] = { 1,2,3,4,5 }, i, * p;pri ...

  4. Java删除ArrayList中的重复元素的2种方法

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

  5. python中修改列表元素的2种方法

    一.在for循环中直接更改列表中元素的值不会起作用: 如: l = list(range(10)[::2]) print (l) for n in l: n = 0 print (l) 运行结果: [ ...

  6. jq追加元素的几种方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 【javascript基础——系列10】js中隐藏元素的几种方法以及代码

    系列文章 [javascript基础--系列1]前端页面ajax连接后台服务器传输数据 [javascript基础--系列2]前端页面axios连接后台服务器传输数据 [javascript基础--系 ...

  8. js追加元素的几种方法(append()、prepend()、after()、before()、insertAfter()、insertBefore())...

    [html] view plain copy <!DOCTYPE html> <html> <head> <meta charset="UTF-8& ...

  9. python中字符串怎么引用_Python:字符串中引用外部变量的3种方法

    方法一: username=input('username:') age=input('age:') job=input('job:') salary=input('salary') info1='' ...

最新文章

  1. 马云/牛根生经典语录
  2. python做exe开发教程_python做exe开发教程
  3. Mac zsh切换bash bash切换zsh
  4. android批量删除图片,Android RecyclerView单点、批量数据元素项目item的增加、删除和移动...
  5. 数据中心节能的13个有用小知识
  6. 主程序与子程序不在同一程序模块中_分享:宏程序和子程序的应用
  7. ORA-00980与PL/SQL程序编译出错
  8. 声明式编程与函数式编程_实用程序类与函数式编程无关
  9. JAXB和java.util.Map
  10. 服务器的可维护性,可靠性和可维护性
  11. pip命令提示unknow or unsupported command install解决方法
  12. Sun公司发布最新版本的JDK 6 update 11
  13. googel的扩展插件导出与导入
  14. 程序员薪资怎么论高级还是初级_Java程序员的薪水取决于年龄还是技术?
  15. Unity3d C#使用Highlighting System 5.0高光插件的详细使用教学和脚本动态操作
  16. tomcat自动重启
  17. UiPath调用超级鹰识别验证码
  18. UDS——ISO14229
  19. 在ubuntu20.04/18.04下安装无线网卡rtl8192fu驱动
  20. 【MySQL】--架构简介

热门文章

  1. VLAN端口类型(access、Trunk、Hybrid)
  2. 苏大计算机学院在哪,苏州大学计算机技术学院导师介绍:纪其进
  3. [UE5蓝图基础一]13.类似”人类一败涂地”掉落一定距离会回到空中 最终着落点还是设定地形上
  4. js写的中文数字转换成数字的一个小小的算法
  5. 利用Bootstrap制作一个流行的网页
  6. 华为推送 坑点 自定义intent
  7. 猎人X猎人手游如何在电脑上玩 猎人X猎人手游模拟器教程
  8. 【No JSON object could be decoded】问题解决
  9. 如何在iPhone或iPad上使用控制中心
  10. Python 编写函数实现交叉合并字符串,例如:ABCD与1234的合并结果是A1B2C3D4