`

Java ArrayList 删除重复值

    博客分类:
  • Java
 
阅读更多

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去除重复元素(包括字符串和自定义对象) 在Java中,ArrayList是一种常用的集合类,但是在实际应用中,我们经常会遇到重复元素的问题,例如字符串或自定义对象的重复元素。在本文中,我们将介绍如何...

    Java ArrayList实现的快排,归并排序,堆排序

    ArrayList作为Java集合框架中的一员,它提供了丰富的操作接口,包括对元素的添加、删除、修改以及排序等。本篇将重点讲解如何利用ArrayList实现快速排序(Quick Sort)、归并排序(Merge Sort)和堆排序(Heap Sort...

    java 去除重复元素

    在Java编程中,处理数据集合时,我们常常会遇到去除重复元素的需求。这可能是为了保持数据的唯一性,或者为了优化存储和计算效率。本文将详细介绍如何在Java中去除重复元素,主要关注数组和列表这两种常见数据结构。...

    Java中ArrayList的使用方法简单介绍

    将ArrayList转换为HashSet,然后再转换回ArrayList,可以方便地去除重复元素。如下所示: ```java ArrayList&lt;Integer&gt; arraylist = new ArrayList(Arrays.asList(2, 5, 2, 3, 2, 4)); Set&lt;Integer&gt; hashset_temp = ...

    java去除集合中重复元素示例分享 java去除重复

    在实际开发中,我们经常需要从集合中去除重复元素,以保证数据的唯一性和正确性。今天,我们来分享一个Java集合去重示例,帮助大家更好地理解和应用这个概念。 Java集合去重示例的需求背景 -----------------------...

    java集合类详解(set list ArrayList等java集合类详述)

    迭代器的工作原理是通过 next() 方法返回元素,并可以通过 remove() 方法删除元素。 Collections 类提供了一些有用的方法,如排序、取最大和最小的元素、在已排序的 List 中搜索指定的元素等。 LinkedList 是采用...

    java过滤数组中重复元素,完整demo

    在Java编程中,处理数组和集合时,我们经常会遇到需要去除重复元素的情况。在这个主题中,我们将深入探讨如何使用ArrayList来过滤数组中的重复元素,并通过一个完整的Demo来演示这一过程。ArrayList是Java集合框架中...

    删除List中的重复值

    删除List中的重复值 方法一:循环元素删除 // 删除ArrayList中重复元素 public static void removeDuplicate(List list) { for ( int i = 0 ; i () - 1 ; i ++ ) { for ( int j = list.size() - 1 ; j &gt; i; j...

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

    对比两种方法,我们可以看到使用`HashSet`虽然能快速去除重复元素,但失去了元素原有的顺序;而使用`LinkedHashSet`则在保持元素顺序的同时去除了重复。选择哪种方法取决于你的需求,如果你需要保持元素的原始顺序,...

    深入Java集合学习系列(三):ArrayList实现原理

    它允许包含重复的元素,也允许插入null值,这是区别于Java集合中的另一个List接口实现类LinkedList的重要特点。ArrayList内部通过一个数组来保存其所有元素,这个数组就是ArrayList的“elementData”字段。 ...

    java arrayList遍历的四种方法及Java中ArrayList类的用法

    ArrayList类位于java.util包中,它实现了List接口,因此它支持有序的元素集合,并且允许重复元素。以下是ArrayList的一些关键知识点和常用方法: 1. **动态扩展**: ArrayList在初始化时不会立即分配具体的容量,...

    Java基础加强_ArrayList_HashSet的比较及Hashcode分析

    Hashcode是一个关键的概念,它是Java中的一个方法,用于将对象映射到一个整数值,通常用于哈希表的实现。每个对象都有一个唯一的哈希码,除非两个对象完全相等(equals()返回true),否则它们的哈希码必须不同。如果...

    java对象容器(涉及HashMap,ArrayList,Set等)

    HashMap中的键必须是唯一的,而值可以重复。当我们需要关联两个对象时,HashMap是一个理想的选择。TreeMap是另一个Map实现,它按照键的自然排序或自定义比较器进行排序。 异常处理是Java编程中另一个重要概念,它...

    Java基础-ArrayList方法全解(上).pdf

    在Java中,ArrayList实现了List接口,因此它支持有序的元素序列,并且允许有重复元素。本文将深入解析ArrayList的主要方法,帮助你更好地理解和运用这些方法。 1. 构造方法 - ArrayList(): 这是最基本的构造器,...

    java删除重复字段

    ### Java删除重复字段知识点解析 在本篇文章中,我们将深入探讨如何使用Java编程语言来删除数组中的重复元素。示例代码提供了一种方法,通过利用`HashMap`数据结构的特性来实现这一目标。 #### 一、问题背景 假设...

    java中容器类ArrayList(底层数组实现)和数组存取效率简单测试

    总之,ArrayList作为Java中的重要容器类,具有灵活的容量调整和高效的读取特性,但在插入和删除操作上需要注意其性能影响。理解ArrayList的工作原理和性能特征,有助于编写出更加高效和稳定的代码。

    Java数组,去掉重复值、增加、删除数组元素的实现方法

    在实际应用中,我们经常需要处理数组中的元素,如去除重复值、添加或删除元素。以下将详细讲解如何在Java中实现这些操作。 1. **去掉数组重复值** 在Java中,我们可以使用集合类如`ArrayList`或`HashSet`来帮助...

    顺序表删除重复元素java.docx

    在这个场景中,我们讨论的是使用ArrayList实现顺序表,并探讨如何删除其中的重复元素。ArrayList是Java集合框架中的一种动态数组,允许在任何位置插入和删除元素,具有较高的灵活性。 以下是对给定代码的详细解释:...

    Java 各种集合的区别ArrayList Vector LinkedList map区别

    Set 的优点是:它可以快速地存储和访问数据,并且它可以自动地删除重复的元素。 迭代器 迭代器是一种用于遍历集合的工具,它可以用于访问和操作集合中的每个元素。迭代器的优点是:它可以快速地遍历集合,并且它...

Global site tag (gtag.js) - Google Analytics