您好,登錄后才能下訂單哦!
java中如何實(shí)現(xiàn)List集合去重?這篇文章運(yùn)用了實(shí)例代碼展示,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
List集合在日常Java開發(fā)中是必不可少的,只要懂得運(yùn)用各種各樣的方法就可以大大提高我們開發(fā)的效率,適當(dāng)活用各種方法才會使我們開發(fā)事半功倍。但是,有時(shí)候難免會遇到集合里的數(shù)據(jù)是重復(fù)的,需要進(jìn)行去除。
去重方式:
一、通過遍歷,然后用remove方法進(jìn)行去掉重復(fù)的元素
public static List heavyListMethod04(List<Object> list){ for (int i=0;i<list.size()-1;i++){ Object o =list.get(i); for (int j=i+1;j<list.size();j++){ if(o.equals(list.get(j))){ list.remove(j); j--; } } } return list; }
二、通過set集合的特性,集合元素的唯一性
public static List heavyListMethod01(List list){ Set set=new HashSet(list); //Set set1=new TreeSet(list); List alist=new ArrayList(); for (Object o:set) { alist.add(o); } return alist; }
利用set集合的特性,元素的唯一性 addAll(Collection c)
public static List heavyListMethod02(List list){ List newList=new ArrayList(); newList.addAll(new HashSet(list)); return newList; }
三、通過list的方法contains方法去重
public static List heavyListMethod03(List list){ List alist=new ArrayList(); for (Object o:list) { if(!(alist.contains(o))){ alist.add(o); } } return alist; }
四、(jdk1.8)調(diào)用stream方法將list轉(zhuǎn)換為流,通過distinct(內(nèi)部根據(jù)equals()方法)去掉流中重復(fù)的元素
public static List heavyListMethod05(List<Object> list){ list = list.stream().distinct().collect(Collectors.toList()); return list; }
測試驗(yàn)證:
public static void main(String[] args) { List list=new ArrayList(); list.add(1); list.add(2); list.add(5); list.add(2); list.add(3); list.add(1); list.add(4); List list1 =heavyListMethod01(list); System.out.println("1----"+list1);//[1, 2, 3, 4, 5] List list2 =heavyListMethod02(list); System.out.println("2----"+list2);//[1, 2, 3, 4, 5] List list3 =heavyListMethod03(list); System.out.println("3----"+list3);//[1, 2, 5, 3, 4] List list4 =heavyListMethod04(list); System.out.println("4----"+list4);//[1, 2, 5, 3, 4] List list5 =heavyListMethod05(list); System.out.println("5----"+list5);//[1, 2, 5, 3, 4] }
到此為止, 關(guān)于java中實(shí)現(xiàn)List集合去重的方法有了一個(gè)基礎(chǔ)的認(rèn)識, 但是對于具體的使用方法還是需要多加鞏固和練習(xí),如果想了解更多相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。