网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

JAVA对象整体去重+按照对象内某个属性去重-创新互联

目录

专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业额尔古纳免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

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 ListtoDistinctList(Listlist) {
        //标签对象,根据标签名去除重复值
        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);
    }

结果

[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://bjjierui.cn/article/dihpee.html

其他资讯