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<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中的重复元素后,依然保持了元素的插入顺序。
译文链接:http://www.codeceo.com/article/java-arraylist-remove-duplicate-ele.html
英文原文:How To Remove Duplicate Elements From ArrayList In Java?
相关推荐
Java中ArrayList去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...
ArrayList作为Java集合框架中的一员,它提供了丰富的操作接口,包括对元素的添加、删除、修改以及排序等。本篇将重点讲解如何利用ArrayList实现快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort...
在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...
将ArrayList转换为HashSet,然后再转换回ArrayList,可以方便地去除重复元素。如下所示: ```java ArrayList<Integer> arraylist = new ArrayList(Arrays.asList(2, 5, 2, 3, 2, 4)); Set<Integer> hashset_temp = ...
在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...
迭代器的工作原理是通过 next() 方法返回元素,并可以通过 remove() 方法删除元素。 Collections 类提供了一些有用的方法,如排序、取最大和最小的元素、在已排序的 List 中搜索指定的元素等。 LinkedList 是采用...
在Java编程中,处理数组和集合时,我们经常会遇到需要去除重复元素的情况。在这个主题中,我们将深入探讨如何使用ArrayList来过滤数组中的重复元素,并通过一个完整的Demo来演示这一过程。ArrayList是Java集合框架中...
删除List中的重复值 方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i () - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j > i; j...
对比两种方法,我们可以看到使用`HashSet`虽然能快速去除重复元素,但失去了元素原有的顺序;而使用`LinkedHashSet`则在保持元素顺序的同时去除了重复。选择哪种方法取决于你的需求,如果你需要保持元素的原始顺序,...
它允许包含重复的元素,也允许插入null值,这是区别于Java集合中的另一个List接口实现类LinkedList的重要特点。ArrayList内部通过一个数组来保存其所有元素,这个数组就是ArrayList的“elementData”字段。 ...
ArrayList类位于java.util包中,它实现了List接口,因此它支持有序的元素集合,并且允许重复元素。以下是ArrayList的一些关键知识点和常用方法: 1. **动态扩展**: ArrayList在初始化时不会立即分配具体的容量,...
Hashcode是一个关键的概念,它是Java中的一个方法,用于将对象映射到一个整数值,通常用于哈希表的实现。每个对象都有一个唯一的哈希码,除非两个对象完全相等(equals()返回true),否则它们的哈希码必须不同。如果...
HashMap中的键必须是唯一的,而值可以重复。当我们需要关联两个对象时,HashMap是一个理想的选择。TreeMap是另一个Map实现,它按照键的自然排序或自定义比较器进行排序。 异常处理是Java编程中另一个重要概念,它...
在Java中,ArrayList实现了List接口,因此它支持有序的元素序列,并且允许有重复元素。本文将深入解析ArrayList的主要方法,帮助你更好地理解和运用这些方法。 1. 构造方法 - ArrayList(): 这是最基本的构造器,...
### Java删除重复字段知识点解析 在本篇文章中,我们将深入探讨如何使用Java编程语言来删除数组中的重复元素。示例代码提供了一种方法,通过利用`HashMap`数据结构的特性来实现这一目标。 #### 一、问题背景 假设...
总之,ArrayList作为Java中的重要容器类,具有灵活的容量调整和高效的读取特性,但在插入和删除操作上需要注意其性能影响。理解ArrayList的工作原理和性能特征,有助于编写出更加高效和稳定的代码。
在实际应用中,我们经常需要处理数组中的元素,如去除重复值、添加或删除元素。以下将详细讲解如何在Java中实现这些操作。 1. **去掉数组重复值** 在Java中,我们可以使用集合类如`ArrayList`或`HashSet`来帮助...
在这个场景中,我们讨论的是使用ArrayList实现顺序表,并探讨如何删除其中的重复元素。ArrayList是Java集合框架中的一种动态数组,允许在任何位置插入和删除元素,具有较高的灵活性。 以下是对给定代码的详细解释:...
Set 的优点是:它可以快速地存储和访问数据,并且它可以自动地删除重复的元素。 迭代器 迭代器是一种用于遍历集合的工具,它可以用于访问和操作集合中的每个元素。迭代器的优点是:它可以快速地遍历集合,并且它...