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

这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet。

ArrayList是Java中最常用的集合类型之一。它允许灵活添加多个null元素,重复的元素,并保持元素的插入顺序。在编码时我们经常会遇到那种必须从已建成的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<String> listWithDuplicateElements = new ArrayList<String>();

 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<String> set = new HashSet<String>(listWithDuplicateElements);

 //Constructing listWithoutDuplicateElements using set

 ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(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<String> listWithDuplicateElements = new ArrayList<String>();

 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<String> set = new LinkedHashSet<String>(listWithDuplicateElements);

 //Constructing listWithoutDuplicateElements using set

 ArrayList<String> listWithoutDuplicateElements = new ArrayList<String>(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重复元素、arraylist 删除元素、java arraylist去重复、java arraylist取元素,以便于您获取更多的相关知识。

时间: 2024-08-29 05:33:50

2种Java删除ArrayList中的重复元素的方法_java的相关文章

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

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

java检查数组是否有重复元素的方法_java

本文实例讲述了java检查数组是否有重复元素的方法.分享给大家供大家参考.具体实现方法如下: //判断数组中是否有重复值 public static boolean checkRepeat(String[] array){ Set<String> set = new HashSet<String>(); for(String str : array){ set.add(str); } if(set.size() != array.length){ return false;//有重

三种java 去掉字符串中的重复字符函数

三种java 去掉字符串中的重复字符函数 */ public static void main(string[] args) {         system.out.println(removerepeatedchar("ddddccffgd"));     }     public static string removerepeatedchar(string s) {         if (s == null)             return s;         str

如何删除数组中的重复元素(asp,js,php)

如何删除数组中的重复元素(asp教程,js,php教程) <html xmlns="http://www.111cn.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> </head> <body> js删除数据组中重复的元素 <script l

求删除LIST中的重复元素的算法

问题描述 有如下ListListlist=newArrayList();list.add("a");list.add("b");list.add("a");list.add("c");list.add("a");list.add("b");list.add("d");现在删除list中重复的元素,注意:只要重复的都要删除,把不重复的放到另外一个LIST中.希望的结果:

Java在数组中查找指定元素的方法

以下实例演示了如何使用 contains () 方法来查找数组中的指定元素: 例子1 import java.util.ArrayList; public class Main {    public static void main(String[] args)  {       ArrayList objArray = new ArrayList();       ArrayList objArray2 = new ArrayList();       objArray2.add(0,"co

详解Java多线程编程中CountDownLatch阻塞线程的方法_java

直译过来就是倒计数(CountDown)门闩(Latch).倒计数不用说,门闩的意思顾名思义就是阻止前进.在这里就是指 CountDownLatch.await() 方法在倒计数为0之前会阻塞当前线程. CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. CountDownLatch 的作用和 Thread.join() 方法类似,可用于一组线程和另外一组线程的协作.例如,主线程在做一项工作之前需要一系列的准备工作,只有这些准备工

java集合类arraylist循环中删除特定元素的方法_java

在项目开发中,我们可能往往需要动态的删除ArrayList中的一些元素. 一种错误的方式: <pre name="code" class="java">for(int i = 0 , len= list.size();i<len;++i){ if(list.get(i)==XXX){ list.remove(i); } }  上面这种方式会抛出如下异常:   Exception in thread "main" java.lan

【方法1】删除Map中Value重复的记录,并且只保留Key最小的那条记录

介绍     晚上无聊的时候,我做了一个测试题,测试题的大体意思是:删除Map中Value重复的记录,并且只保留Key最小的那条记录. 例如: I have a map with duplicate values:     ("A", "1");     ("B", "2");     ("C", "2");     ("D", "3");