目錄
專注于為中小企業提供成都網站建設、做網站服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業額爾古納免費做網站提供優質的服務。我們立足成都,凝聚了一批互聯網行業人才,有力地推動了近千家企業的穩健成長,幫助中小企業通過網站建設實現規模擴充和轉變。1 根據對象中的某一個屬性去重
前置知識
---TreeSet---
-----Comparator.comparing ----
2對象整體去重
1 根據對象中的某一個屬性去重 前置知識 ---TreeSet---TreeSet是一個有序集合,它擴展了AbstractSet類并實現了NavigableSet接口。
有以下特點
1 它存儲唯一的元素
2 它不保留元素的插入順序
3 它按升序對元素進行排序
4 它不是線程安全的
在實現中,對象根據其自然順序以升序排序和存儲。該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
是比較器功能接口的靜態方法。
Comparator.comparing
方法在Java 8
中被引入。
Comparator.comparing
接受一個函數,該函數從給定類型中提取一個可比較的排序鍵(lambda形式的鍵),并返回一個通過該排序鍵進行比較的比較器。思路:
先使用Comparator.comparing 對對象元素排序,然后將返回的迭代器對象給TreeSet,進行去重操作
代碼
public static List
toDistinctList(List list) { //標簽對象,根據標簽名去除重復值 Set Set1 = new TreeSet<>(Comparator.comparing(Category::getCategoryName)); Set1.addAll(list); list.clear(); list.addAll(Set1); return list; } 測試
@Test public void toDistinctList() { List
list=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","")); List categories = AdminBlogBo.toDistinctList(list); System.out.println(categories); }
2對象整體去重也是使用java8的新特性
public static List
toDistinctList(List list) { list = list .stream() .distinct() .collect(Collectors.toList()); return list; 測試
@Test public void toDistinctList() { List
list=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","")); List categories = AdminBlogBo.toDistinctList(list); System.out.println(categories); } 結果
[Category(categoryId=1, categoryName=JAVA, categoryDescription=4sc, categoryIcon=), Category(categoryId=1, categoryName=C, categoryDescription=4sc, categoryIcon=), Category(categoryId=1, categoryName=A, categoryDescription=s5c, categoryIcon=)]
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前名稱:JAVA對象整體去重+按照對象內某個屬性去重-創新互聯
文章網址:http://vcdvsql.cn/article44/dihpee.html
成都網站建設公司_創新互聯,為您提供云服務器、建站公司、網站策劃、域名注冊、微信公眾號、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯