目录
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;} 测试
@Testpublic 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; 测试
@Testpublic 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=)]
上一篇:创业好项目小本钱生意,网络创业的好项目 适合穷人没本钱的创业项目 创业好项目小本钱生意小利润
下一篇:近10年内大学生创业成功案例,五个成功的创业案例 大学生创业成功50个小案例视频 23个真实创业故事成功创业的案例