自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java刪除ArrayList中的重復(fù)元素的2種方法

開發(fā) 后端
ArrayList是Java中最常用的集合類型之一。它允許靈活添加多個null元素,重復(fù)的元素,并保持元素的插入順序。在編碼時我們經(jīng)常會遇 到那種必須從已建成的ArrayList中刪除重復(fù)元素的要求。這篇文章將給出兩種從ArrayList中刪除重復(fù)元素的方法。

ArrayList是Java中最常用的集合類型之一。它允許靈活添加多個null元素,重復(fù)的元素,并保持元素的插入順序。在編碼時我們經(jīng)常會遇 到那種必須從已建成的ArrayList中刪除重復(fù)元素的要求。這篇文章將給出兩種從ArrayList中刪除重復(fù)元素的方法。

[[143685]]

方法1:使用HashSet刪除ArrayList中重復(fù)的元素

在該方法中,我們使用HashSet來刪除重復(fù)的元素。如你所知,HashSet不允許有重復(fù)的元素。我們使用HashSet的這個屬性來刪除已建 成的ArrayList中的重復(fù)元素。但是,這種方法有一個缺點。那就是,它會刪除ArrayList中元素的插入順序。這意味著,刪除重復(fù)的元素后,元 素的插入順序就不對了。先來看下面這個例子。

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]

注意輸出結(jié)果。你會發(fā)現(xiàn),在刪除重復(fù)元素之后,元素重新洗牌。不再按照插入順序排列。如果你想在刪除重復(fù)的元素之后依然保持元素的插入順序,那么不 建議使用此方法。還有另一種方法,可以保證在刪除重復(fù)的元素之后也不改變元素的插入順序。那就是使用LinkedHashSet。

方法2:使用LinkedHashSet刪除ArrayList中重復(fù)的元素

在該方法中,我們使用LinkedHashSet刪除ArrayList中重復(fù)的元素。正如你知道的,LinkedHashSet不允許重復(fù)元素, 同時保持元素的插入順序。LinkedHashSet的這兩個屬性可以確保在刪除ArrayList中的重復(fù)元素之后,依然保持元素的插入順序。參見下面 的例子。

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]

注意輸出。你可以發(fā)現(xiàn)在刪除ArrayList中的重復(fù)元素后,依然保持了元素的插入順序。

 

 

 

譯文鏈接:http://www.codeceo.com/article/java-arraylist-remove-duplicate-ele.html
英文原文:How To Remove Duplicate Elements From ArrayList In Java?

 

責(zé)任編輯:王雪燕 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2012-01-12 13:24:55

Java

2015-03-25 11:42:52

Java刪除特定元素

2012-05-29 15:29:14

JavaArrayList

2022-01-20 09:58:44

Python元素列表

2020-11-13 09:14:23

Linux重復(fù)文件命令行

2024-10-16 18:09:54

2010-09-02 10:36:51

SQL刪除

2009-11-25 16:36:29

PHP刪除數(shù)組重復(fù)元素

2021-11-02 07:54:40

List分片Java

2010-07-01 12:29:27

SQL Server重

2023-11-23 13:43:24

Python列表

2017-06-09 13:51:42

Linux命令刪除文件

2010-11-15 14:42:03

Oracle查詢重復(fù)記

2021-12-20 07:11:26

Java List排序 Java 基礎(chǔ)

2010-10-22 16:29:11

SQL Server刪

2021-03-08 09:32:04

Python文件命令

2010-05-20 11:50:08

MySQL訪問限制

2010-09-01 16:47:18

SQL刪除

2010-09-30 10:29:56

DB2刪除重復(fù)記錄

2010-06-02 16:14:14

導(dǎo)入MySQL
點贊
收藏

51CTO技術(shù)棧公眾號