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月前
|
前端开发 Java C++
三种实用ES6 数组内对象去重方法
三种实用ES6 数组内对象去重方法
583 0
|
8月前
|
前端开发 小程序
ES6 数组中的对象去重
ES6 数组中的对象去重
|
8月前
|
数据处理
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
利用Stream流将取到的对象List<对象>形式数据进行分组统计转变成Map<分组条件,数量统计>形式
88 0
List 集合通过创建stream 流的方式转成map集合
List 集合通过创建stream 流的方式转成map集合
105 0
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
jdk8 Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等10种最常用方法
206 5
|
C#
c#集合去重&排序常用方法
list和数组转Hashset跟SortedSet进行排序和去重,以及当Hashset和SortedSet存放的是类时如何进行自定义的排序和去重
110 2
|
8月前
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
Stream流中将集合转成map,重复key处理,统计最大值,获取某个属性集合等12种最常用方法
135 0
|
8月前
|
Java
使用 stream 从 List 对象中获取某列数据
使用 stream 从 List 对象中获取某列数据
279 0
|
存储 监控 Java
Set集合去重(详细篇)
Set集合去重(详细篇)
226 0
|
JavaScript
数组双重去重的方式五对象属性去重
数组双重去重的方式五对象属性去重
51 0