日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

list contains方法_Java中给List去重的5种方法,谁的效率更高?

發布時間:2025/3/19 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 list contains方法_Java中给List去重的5种方法,谁的效率更高? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

剛開始學習list的時候就學習了在list集合中如何去除重復數據,當時第一想到的就是通過循環判斷來去除重復數據,后來慢慢接觸的東西多了,就開始注重一個效率,當數據量巨大的時候,怎么樣才能查的更快,怎樣的代碼會更好。

接下來總結list中去重的幾個方法

1、使用雙重for循環實現List去重

????/**使用雙重for循環實現List去重(有序) * * @param list * */ public static List removeDuplicationBy2For(Listlist) { for (int i=0;i<list.size();i++) { for (int j=i+1;j<list.size();j++) { if(list.get(i).equals(list.get(j))){ list.remove(j); } } } return list; }

2、使用List集合中contains方法循環遍歷

/**使用List集合contains方法循環遍歷(有序) * * @param list * */ public static List removeDuplicationByContains(Listlist) { List newList =new ArrayList<>(); for (int i=0;i<list.size();i++) { boolean isContains =newList.contains(list.get(i)); if(!isContains){ newList.add(list.get(i)); } } list.clear(); list.addAll(newList); return list; }

3、使用HashSet實現List去重

/**使用HashSet實現List去重(無序) * * @param list * */ public static List removeDuplicationByHashSet(Listlist) { HashSet set = new HashSet(list); //把List集合所有元素清空 list.clear(); //把HashSet對象添加至List集合 list.addAll(set); return list; }

4、使用TreeSet實現List去重

/**使用TreeSet實現List去重(有序) * * @param list * */ public static List removeDuplicationByTreeSet(Listlist) { TreeSet set = new TreeSet(list); //把List集合所有元素清空 list.clear(); //把HashSet對象添加至List集合 list.addAll(set); return list; }

5、使用java8新特性stream流實現List去重

/**使用java8新特性stream實現List去重(有序) * * @param list * */ public static List removeDuplicationByStream(Listlist) { List newList = list.stream().distinct().collect(Collectors.toList()); return newList; }

測試各個方法效率

隨機取100000個500以內的數字存入5個集合,分別調用5個方法進行測試,計算去除重復值所需的時間public?class?Demo?{ public static void main(String[] args) { List list1 = new ArrayList<>(); List list2 = new ArrayList<>(); List list3 = new ArrayList<>(); List list4 = new ArrayList<>(); List list5 = new ArrayList<>(); Random random =new Random(); for (int i = 0; i < 100000; i++) { int value =random.nextInt(500); list1.add(value); list2.add(value); list3.add(value); list4.add(value); list5.add(value); } long startTime ; long endTime; startTime = System.currentTimeMillis(); removeDuplicationByHashSet(list1); endTime = System.currentTimeMillis(); System.out.println("使用HashSet實現List去重時間:"+(endTime-startTime)+"毫秒"); startTime = System.currentTimeMillis(); removeDuplicationByTreeSet(list2); endTime = System.currentTimeMillis(); System.out.println("使用TreeSet實現List去重時間:"+(endTime-startTime)+"毫秒"); startTime = System.currentTimeMillis(); removeDuplicationByStream(list3); endTime = System.currentTimeMillis(); System.out.println("使用java8新特性stream實現List去重:"+(endTime-startTime)+"毫秒"); startTime = System.currentTimeMillis(); removeDuplicationBy2For(list4); endTime = System.currentTimeMillis();????????????System.out.println("使用雙重for循環實現List去重:"+(endTime-startTime)+"毫秒"); startTime = System.currentTimeMillis(); removeDuplicationByContains(list5); endTime = System.currentTimeMillis(); System.out.println("使用List集合contains方法循環遍歷:"+(endTime-startTime)+"毫秒"); }????/**使用雙重for循環實現List去重(有序) * * @param list * */ public static List removeDuplicationBy2For(Listlist) { for (int i=0;i<list.size();i++) { for (int j=i+1;j<list.size();j++) { if(list.get(i).equals(list.get(j))){ list.remove(j); } } } return list; } /**使用List集合contains方法循環遍歷(有序) * * @param list * */ public static List removeDuplicationByContains(Listlist) { List newList =new ArrayList<>(); for (int i=0;i<list.size();i++) { boolean isContains =newList.contains(list.get(i)); if(!isContains){ newList.add(list.get(i)); } } list.clear(); list.addAll(newList); return list; } /**使用HashSet實現List去重(無序) * * @param list * */ public static List removeDuplicationByHashSet(Listlist) { HashSet set = new HashSet(list); //把List集合所有元素清空 list.clear(); //把HashSet對象添加至List集合 list.addAll(set); return list; } /**使用TreeSet實現List去重(有序) * * @param list * */ public static List removeDuplicationByTreeSet(Listlist) { TreeSet set = new TreeSet(list); //把List集合所有元素清空 list.clear(); //把HashSet對象添加至List集合 list.addAll(set); return list; } /**使用java8新特性stream實現List去重(有序) * * @param list * */ public static List removeDuplicationByStream(Listlist) { List newList = list.stream().distinct().collect(Collectors.toList()); return newList; }}

結果1:

使用HashSet實現List去重時間:14毫秒使用TreeSet實現List去重時間:20毫秒使用java8新特性stream實現List去重:52毫秒使用雙重for循環實現List去重:355毫秒使用List集合contains方法循環遍歷:27毫秒

結果2:

使用HashSet實現List去重時間:21毫秒使用TreeSet實現List去重時間:24毫秒使用java8新特性stream實現List去重:67毫秒使用雙重for循環實現List去重:401毫秒使用List集合contains方法循環遍歷:37毫秒

結果3:

使用HashSet實現List去重時間:16毫秒使用TreeSet實現List去重時間:72毫秒使用java8新特性stream實現List去重:62毫秒使用雙重for循環實現List去重:350毫秒使用List集合contains方法循環遍歷:33毫秒如果沒有要求有序排列的時候,使用HashSet處理最好

總結

以上是生活随笔為你收集整理的list contains方法_Java中给List去重的5种方法,谁的效率更高?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一出一进一爽一粗一大视频 | 欧美射射射 | 福利一区在线 | 亚洲天堂av片 | 国产精品一区二区在线播放 | 欧美一区二区三区久久精品 | 琪琪五月天 | 欧美精选一区二区 | 91免费精品 | 97视频免费看 | 久久精品国产亚洲av麻豆蜜芽 | 日韩经典午夜福利发布 | 欧美色爽 | 九色porn蝌蚪| 在线观看国产小视频 | 黄色xxx| 九九夜 | 日韩国产欧美一区二区 | www日韩av| 男男gay同性三级 | 国产欧美一区二区三区精品酒店 | 国内精品小视频 | 97人妻精品一区二区三区动漫 | 五月婷婷六月激情 | 色哟哟免费观看 | 天堂av手机版 | 爆操日本美女 | 一区二区传媒有限公司 | 国产精品黄 | 无码人妻一区二区三区在线 | 国产午夜精品一区二区三区 | 男女做爰猛烈高潮描写 | www.欧美色 | 免费20分钟超爽视频 | 色综合图片区 | 精品黑人一区二区三区久久 | 免费在线日本 | 第一福利在线 | 久久久欧美 | 四房婷婷 | 成人h动漫精品一区二区器材 | 亚洲一区中文字幕在线 | 亚洲v欧美v | 午夜在线观看视频网站 | 熟女视频一区二区三区 | 日韩裸体视频 | 免费看欧美一级特黄a大片 国产免费的av | 一本大道久久a久久精二百 琪琪色在线视频 | 国产精品情侣呻吟对白视频 | 成人动漫免费在线观看 | 超碰色偷偷 | 免费一级毛片麻豆精品 | 香蕉视频性 | 亚洲精品久久久久久国 | 久插网 | 东北女人啪啪ⅹxx对白 | 欧美一级免费大片 | 欧美视频第一区 | 精品国产一区二区三区四 | √天堂中文官网8在线 | 日本韩国在线观看 | 久久最新 | 日韩在线视频免费看 | 日韩中文一区 | 欧美精品乱码99久久蜜桃 | 精品亚洲一区二区三区四区五区高 | 天天摸日日操 | 国产欧美视频在线观看 | 黄污视频在线观看 | 爱情岛论坛永久入口 | 一区二区三区在线视频观看 | 黄色一级一级 | 爱涩av| 视频在线观看 | 美日毛片| 亚洲精品福利在线观看 | 精品无码人妻少妇久久久久久 | 天堂网av在线 | 日本三级一区 | 午夜tv影院| 国产精品丝袜黑色高跟鞋的设计特点 | 亚洲三级av | av嫩草| 国产精品人人 | 日日干天天干 | 欧美日韩在线播放视频 | 最新中文字幕在线视频 | 亚洲AV成人无码电影在线观看 | 校园伸入裙底揉捏1v1h | 在线欧美亚洲 | 欧美日韩国产在线观看 | 国产精品热久久 | 窝窝午夜精品一区二区 | 2018自拍偷拍| 国产一级片中文字幕 | 日韩影视在线 | 天堂二区| 看日本毛片| 三级影片在线免费观看 |