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中的反復元素後,仍然堅持了元素的拔出次序。
以上就是本文的全體內容,願望對年夜家的進修有所贊助。