程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 2種Java刪除ArrayList中的反復元素的辦法

2種Java刪除ArrayList中的反復元素的辦法

編輯:關於JAVA

2種Java刪除ArrayList中的反復元素的辦法。本站提示廣大學習愛好者:(2種Java刪除ArrayList中的反復元素的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是2種Java刪除ArrayList中的反復元素的辦法正文


這篇文章將給出兩種從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中的反復元素後,仍然堅持了元素的拔出次序。

以上就是本文的全體內容,願望對年夜家的進修有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved