最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

2種Java刪除ArrayList中的重復元素的方法

 更新時間:2015年08月04日 11:03:47   投稿:lijiao  
這篇文章主要介紹了2種Java刪除ArrayList中的重復元素的方法,感興趣的朋友可以參考下

這篇文章將給出兩種從ArrayList中刪除重復元素的方法,分別是使用HashSet和LinkedHashSet。

ArrayList是Java中最常用的集合類型之一。它允許靈活添加多個null元素,重復的元素,并保持元素的插入順序。在編碼時我們經(jīng)常會遇到那種必須從已建成的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]


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

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

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

相關文章

  • 關于SSM框架下各層的解釋說明(Controller等)

    關于SSM框架下各層的解釋說明(Controller等)

    這篇文章主要介紹了關于SSM框架下各層的解釋說明(Controller等),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中StringBuilder類常用方法總結(jié)

    Java中StringBuilder類常用方法總結(jié)

    這篇文章主要介紹了Java中StringBuilder類常用方法的相關資料,StringBuilder類是Java中用于頻繁修改字符串的可變字符串緩沖區(qū)類,它提供了多種方法進行字符串操作,如添加、插入、刪除、替換字符等,需要的朋友可以參考下
    2024-12-12
  • DolphinScheduler容錯Master源碼分析

    DolphinScheduler容錯Master源碼分析

    這篇文章主要為大家介紹了DolphinScheduler容錯Master源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java實現(xiàn)的日歷功能完整示例

    Java實現(xiàn)的日歷功能完整示例

    這篇文章主要介紹了Java實現(xiàn)的日歷功能,結(jié)合完整實例形式分析了Java日歷功能相關的日期時間獲取、計算、顯示等操作技巧,需要的朋友可以參考下
    2019-02-02
  • SpringBoot通過tractId操作日志鏈路跟蹤

    SpringBoot通過tractId操作日志鏈路跟蹤

    這篇文章給大家介紹SpringBoot通過tractId操作日志鏈路跟蹤,通過tractId,即可完成對從一個請求進入系統(tǒng)到請求結(jié)束的日志追蹤,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2023-10-10
  • Spring Cloud LoadBalancer 負載均衡詳解

    Spring Cloud LoadBalancer 負載均衡詳解

    本文介紹了如何在Spring Cloud中使用SpringCloudLoadBalancer實現(xiàn)客戶端負載均衡,并詳細講解了輪詢策略和隨機策略的配置方法,此外,還提供了部署到云服務器并在多個實例之間進行負載均衡的步驟,感興趣的朋友一起看看吧
    2025-02-02
  • Mybatis中Mapper映射文件使用詳解

    Mybatis中Mapper映射文件使用詳解

    這篇文章主要介紹了Mybatis中Mapper映射文件使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • SpringBoot配置log4j輸出日志的案例講解

    SpringBoot配置log4j輸出日志的案例講解

    這篇文章主要介紹了SpringBoot配置log4j輸出日志的案例講解,springboot框架中默認使用logback進行日志輸出,當然它也可以配置其它的日志框架,需要的朋友可以參考下
    2022-11-11
  • Java使用POI導出Excel(二):多個sheet

    Java使用POI導出Excel(二):多個sheet

    這篇文章介紹了Java使用POI導出Excel的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • Java File類的簡單使用教程(創(chuàng)建、刪除、遍歷與判斷是否存在等)

    Java File類的簡單使用教程(創(chuàng)建、刪除、遍歷與判斷是否存在等)

    這篇文章主要給大家介紹了關于Java File類的簡單使用(創(chuàng)建、刪除、遍歷與判斷是否存在等)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12

最新評論

永福县| 定兴县| 丰宁| 富顺县| 罗平县| 金塔县| 镇雄县| 铜陵市| 哈尔滨市| 乐亭县| 长海县| 金寨县| 洛南县| 进贤县| 谢通门县| 合肥市| 葵青区| 瑞金市| 宁津县| 荔波县| 沧州市| 玉环县| 余姚市| 大新县| 班玛县| 东至县| 绥中县| 盘山县| 博客| 航空| 广宗县| 青河县| 娱乐| 柯坪县| 渭源县| 平远县| 莱芜市| 松溪县| 保定市| 襄樊市| 文安县|