Stream流用于按照对象中某一属性来对集合去重+简单数据类型集合的去重

简介: Stream流用于按照对象中某一属性来对集合去重+简单数据类型集合的去重

Stream流用于按照对象中某一属性来对集合去重+简单数据类型集合的去重


上次对Stream流来进行分组的文章很多人看,想看的可以来这:

Stream流来进行集合分组

这次小编又带来Stream的去重,话不多数,直接上代码:

这是对简单数据类型的去重

    //字符串集合进行简单的去重(其他数据类型去重一样)
        List<String> stringList = Arrays.asList("伽罗", "貂蝉", "芈月", "伽罗");
        //jdk1.8Stream来去重
        stringList = stringList.stream().distinct().collect(Collectors.toList());
        System.out.println(JSON.toJSONString(stringList));
        /**
         * 执行结果:["伽罗","貂蝉","芈月"]
         *
         */

对对象中的某一个属性来进行去重:

/**
实体类
*/
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data//lombok简化代码
@AllArgsConstructor
@NoArgsConstructor
public class Hero {
    //英雄id
    private int id;
    //名字
    private String name;
    //类型
    private String type;
}
    //进行对象中的某个属性进行去重
        List<Hero> list = Arrays.asList(
                new Hero(001,"孙悟空","刺客"),
                new Hero(002,"韩信","刺客"),
                new Hero(003,"伽罗","射手"),
                new Hero(004,"阿狸","射手"),
                new Hero(005,"貂蝉","法师"));
        //需求:每一个职业只能保留一个英雄
        //去重规则,先出现的保存,后出现的被去掉
        list = list.stream()
                .collect(Collectors.collectingAndThen(
                        Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Hero::getType))), ArrayList::new));
        System.out.println(JSON.toJSONString(list));
        /**
         * 执行结果:[{"id":1,"name":"孙悟空","type":"刺客"},{"id":3,"name":"伽罗","type":"射手"},
         * {"id":5,"name":"貂蝉","type":"法师"}]
         */

这样就学会了,直接复制代码运行一下,照猫画虎不是难题,有什么问题请留言,还请各位大佬批评指正!!!!

相关文章
|
8月前
List 集合通过创建stream 流的方式转成map集合
List 集合通过创建stream 流的方式转成map集合
52 0
|
4月前
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
47 0
|
4月前
|
Java
使用 stream 从 List 对象中获取某列数据
使用 stream 从 List 对象中获取某列数据
85 0
|
5月前
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
73 5
|
5月前
|
存储 监控 Java
Set集合去重(详细篇)
Set集合去重(详细篇)
|
5月前
|
C#
c#集合去重&排序常用方法
list和数组转Hashset跟SortedSet进行排序和去重,以及当Hashset和SortedSet存放的是类时如何进行自定义的排序和去重
46 2
|
8月前
|
JavaScript
数组双重去重的方式五对象属性去重
数组双重去重的方式五对象属性去重
23 0
|
8月前
|
fastjson
如何将Map 集合里面的数据转换成对象
如何将Map 集合里面的数据转换成对象
125 0
|
8月前
|
Java
java8 List根据对象中属性去重-多属性去重-去除重复字符串
java8 List根据对象中属性去重-多属性去重-去除重复字符串
638 0
|
8月前
|
Java
2.3 Lambda表达式在集合操作中的应用:对集合元素进行映射和转换
2.3 Lambda表达式在集合操作中的应用:对集合元素进行映射和转换
79 0