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

如何去除Java中List集合中的重復(fù)數(shù)據(jù)

 更新時(shí)間:2020年05月29日 14:17:45   作者:Oraclea  
這篇文章主要介紹了Java中List集合去除重復(fù)數(shù)據(jù)的方法,對(duì)大家的工作或?qū)W習(xí)有一定價(jià)值,有需求的朋友可以參考下

1.循環(huán)list中的所有元素然后刪除重復(fù)

public class duplicatRemoval {
public static List removeDuplicate(List list){
for(int i=0;i<list. size()-1;i++){
for(int j=list.size()-1;j>i;j--){
if(list. get(j). equals(list.get(i))){
list.remove(j);
}
}
}
return list;
}
}

總結(jié):

兩層循環(huán),外層循環(huán)從第一個(gè)元素向最后一個(gè)元素循環(huán),內(nèi)層循環(huán)是從最后一個(gè)元素向外層循環(huán)元素的當(dāng)前元素循環(huán)。比較兩個(gè)元素是否相等,如果相等,移除靠后的元素來進(jìn)行去重。這種方法時(shí)間復(fù)雜度大于O(n),小于O(N²)

2.通過HashSet剔除重復(fù)元素

public class duplicatRemoval {
public static List removeDuplicate(List list) {
HashSet hashSet = new HashSet(list) ;
list.clear();
list.addAll(hashSet);
return list;
}
}

總結(jié):

此種方式是利用了Set的特性:元素不可重復(fù),其底層原理是先計(jì)算每個(gè)對(duì)象的hash值,再比較元素值是否相同,如果相同,則保留最新的。

3.刪除ArrayList中重復(fù)元素,保持順序

public class duplicatRemoval {
public static void removeDuplicateWithOrder(List list) {
Set set = new HashSet( );
List newList = new ArrayList();
for (Iterator iter = list. iterator(); iter. hasNext();) {
0bject element= iter.next( );
if (set. add( element) )
newList.add( element);
}
list.clear();
list.addAll(newList);
System. out. println(”remove duplicate"+ list);
}
}

4.把list里的對(duì)象遍歷一遍,用list.contain(),如果不存在就放入到另外一個(gè)list集合中

public class duplicatRemoval {
public static List removeDuplicate(List list){
List listTemp = new ArrayList();
for(int i=0;i<list. size();i++){
if( !listTemp . contains(list.get(i))){
listTemp. add(list.get(i));
}
return listTemp;
}

5.用JDK1.8 Stream中對(duì)List進(jìn)行去重:list.stream().distinct();

public class duplicatRemoval {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>( 1000000) ;
for(inti=0;i<10;i++){
list. add(1);
System . out. println(list);
List shortList = removeDuplicate(list);
System . out . println( shortList);
}
@Suppres sWarnings( "rawtypes" )
public static List removeDuplicate(List list){
List newList = (List) list. stream(). distinct( ).collect(Collectors. toList());
return newList ;

首先獲得此list的Stream,然后調(diào)用distinct()方法。Java8中提供流的方式對(duì)數(shù)據(jù)進(jìn)行處理,非???,底層用的是forkJoin框架,提供了并行處理,使得多個(gè)處理器同時(shí)處理流中的數(shù)據(jù),所以耗時(shí)非常短。

到此這篇關(guān)于如何去除Java中List集合中的重復(fù)數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Java List集合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何理解Java的跨平臺(tái)特性操作

    如何理解Java的跨平臺(tái)特性操作

    這篇文章主要介紹了如何理解Java的跨平臺(tái)特性操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java使用Log4j記錄日志的方法詳解

    Java使用Log4j記錄日志的方法詳解

    log4j是一個(gè)常用的日志框架,用于記錄應(yīng)用程序的執(zhí)行過程或異常等記錄在日志文件中。本文將利用Log4j記錄日志,感興趣的可以了解一下
    2022-03-03
  • Java方法參數(shù)傳遞如何實(shí)現(xiàn)

    Java方法參數(shù)傳遞如何實(shí)現(xiàn)

    這篇文章主要介紹了Java方法參數(shù)傳遞如何實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • java-spark中各種常用算子的寫法示例

    java-spark中各種常用算子的寫法示例

    這篇文章主要給大家介紹了關(guān)于java-spark中各種常用算子的寫法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Java8 Collectors求和功能的自定義擴(kuò)展操作

    Java8 Collectors求和功能的自定義擴(kuò)展操作

    這篇文章主要介紹了Java8 Collectors求和功能的自定義擴(kuò)展操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • SpringBoot中的事務(wù)配置管理詳解

    SpringBoot中的事務(wù)配置管理詳解

    這篇文章主要介紹了SpringBoot中的事務(wù)配置管理詳解,Spring Boot 默認(rèn)的事務(wù)規(guī)則是遇到運(yùn)行異常(RuntimeException)和程序錯(cuò)誤(Error)才會(huì)回滾,但是拋出SQLException就無法回滾了,需要的朋友可以參考下
    2024-01-01
  • Java實(shí)現(xiàn)本地文件批量重命名的示例代碼

    Java實(shí)現(xiàn)本地文件批量重命名的示例代碼

    本文主要介紹了Java實(shí)現(xiàn)本地文件批量重命名的示例代碼,主要步驟為獲取指定目錄下的所有文件,對(duì)每個(gè)文件進(jìn)行修改,將修改后的文件名賦給該文件,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • MPAndroidChart開源圖表庫的使用介紹之餅狀圖、折線圖和柱狀圖

    MPAndroidChart開源圖表庫的使用介紹之餅狀圖、折線圖和柱狀圖

    這篇文章主要介紹了MPAndroidChart開源圖表庫的使用介紹之餅狀圖、折線圖和柱狀圖的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • SpringBoot實(shí)現(xiàn)WebSocket即時(shí)通訊的示例代碼

    SpringBoot實(shí)現(xiàn)WebSocket即時(shí)通訊的示例代碼

    本文主要介紹了SpringBoot實(shí)現(xiàn)WebSocket即時(shí)通訊的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java中String類getBytes()方法詳解與完整實(shí)例

    Java中String類getBytes()方法詳解與完整實(shí)例

    這篇文章主要給大家介紹了關(guān)于Java中String類getBytes()方法詳解與完整實(shí)例的相關(guān)資料,getBytes()是Java編程語言中將一個(gè)字符串轉(zhuǎn)化為一個(gè)字節(jié)數(shù)組byte[]的方法,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

盐山县| 六盘水市| 台江县| 平原县| 望都县| 若尔盖县| 浠水县| 永年县| 滦平县| 炉霍县| 黄龙县| 新郑市| 石屏县| 乐都县| 宁津县| 林西县| 沐川县| 东平县| 玛沁县| 舟山市| 宁海县| 靖江市| 拜泉县| 逊克县| 方山县| 沙雅县| 梧州市| 宜章县| 高唐县| 绵阳市| 盘锦市| 宁陕县| 曲麻莱县| 宜宾县| 罗江县| 南郑县| 金溪县| 衡阳县| 定远县| 莎车县| 修文县|