JAVA對象整體去重+按照對象內(nèi)某個屬性去重-創(chuàng)新互聯(lián)

目錄

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)額爾古納免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

1 根據(jù)對象中的某一個屬性去重

前置知識

---TreeSet---

-----Comparator.comparing ----

2對象整體去重


1 根據(jù)對象中的某一個屬性去重 前置知識 ---TreeSet---

TreeSet是一個有序集合,它擴展了AbstractSet類并實現(xiàn)了NavigableSet接口。

有以下特點

1 它存儲唯一的元素
2 它不保留元素的插入順序
3 它按升序?qū)υ剡M行排序
4 它不是線程安全的
在實現(xiàn)中,對象根據(jù)其自然順序以升序排序和存儲。該TreeSet中使用平衡樹。

常用API

TreeSet add
TreeSet contains
TreeSet remove
TreeSet clear
TreeSet size
TreeSet isEmpty?
TreeSet iterator
TreeSet first
TreeSet last?
TreeSet subSet
TreeSet headSet

具體看

Java TreeSet - Java教程 - 菜鳥教程 (cainiaojc.com)

常用在對象元素排序中

-----Comparator.comparing ----

comparing是比較器功能接口的靜態(tài)方法。

Comparator.comparing方法在Java 8中被引入。

Comparator.comparing接受一個函數(shù),該函數(shù)從給定類型中提取一個可比較的排序鍵(lambda形式的鍵),并返回一個通過該排序鍵進行比較的比較器。

思路:
先使用Comparator.comparing 對對象元素排序,然后將返回的迭代器對象給TreeSet,進行去重操作

代碼

public static ListtoDistinctList(Listlist) {
        //標簽對象,根據(jù)標簽名去除重復(fù)值
        SetSet1 = new TreeSet<>(Comparator.comparing(Category::getCategoryName));
        Set1.addAll(list);
        list.clear();
        list.addAll(Set1);
        return list;
    }

測試

@Test
    public void toDistinctList() {
        Listlist=new ArrayList<>();
        list.add(new Category(1L,"JAVA","s4c",""));
        list.add(new Category(1L,"JAVA","4sc",""));
        list.add(new Category(1L,"C","sc2",""));
        list.add(new Category(1L,"C","sc1",""));
        list.add(new Category(1L,"A","s5c",""));
        Listcategories = AdminBlogBo.toDistinctList(list);
        System.out.println(categories);
    }
2對象整體去重

也是使用java8的新特性

public static ListtoDistinctList(Listlist) {
        list = list
                .stream()
                .distinct()
                .collect(Collectors.toList());
        return list;

測試

@Test
    public void toDistinctList() {
        Listlist=new ArrayList<>();
        list.add(new Category(1L,"JAVA","4sc",""));
        list.add(new Category(1L,"JAVA","4sc",""));
        list.add(new Category(1L,"C","4sc",""));
        list.add(new Category(1L,"C","4sc",""));
        list.add(new Category(1L,"A","s5c",""));
        Listcategories = AdminBlogBo.toDistinctList(list);
        System.out.println(categories);
    }

結(jié)果

[Category(categoryId=1, categoryName=JAVA, categoryDescription=4sc, categoryIcon=), Category(categoryId=1, categoryName=C, categoryDescription=4sc, categoryIcon=), Category(categoryId=1, categoryName=A, categoryDescription=s5c, categoryIcon=)]

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前名稱:JAVA對象整體去重+按照對象內(nèi)某個屬性去重-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://bm7419.com/article44/dihpee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、建站公司、網(wǎng)站策劃、域名注冊微信公眾號、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管