返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java中list集合stream流去重
  • 319
分享到

Java中list集合stream流去重

javajvmservlet 2023-09-15 18:09:15 319人浏览 薄情痞子
摘要

Java中list集合stream流去重 1. List单个字段去重 list.stream().distinct().collect(Collectors.toList()); 2. List对象

Java中list集合stream流去重

1. List单个字段去重

list.stream().distinct().collect(Collectors.toList());

2. List对象集合根据一个或者多个字段去重

准备类:

@Datapublic class Book {    private Long id;    private String name;    private Double price;}

(1)根据单字段name去重

bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Book::getName))), ArrayList::new));

(2)根据多字段name price去重

bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(book -> book.getName() + "-" + book.getPrice()))), ArrayList::new));

(3)示例

import java.util.ArrayList;import java.util.Comparator;import java.util.List;import java.util.TreeSet;import java.util.stream.Collectors;import lombok.Data; @Datapublic class Book {    private Long id;    private String name;    private Double price;     public Book(Long id, String name, Double price) {        this.id = id;        this.name = name;        this.price = price;    }     public static void main(String[] args) {        List<Book> bookList = new ArrayList<>();        bookList.add(new Book(1L, "书本1", 1.1));        bookList.add(new Book(2L, "书本1", 1.1));        bookList.add(new Book(3L, "书本2", 2.2));        bookList.add(new Book(4L, "书本2", 4.4));        // 根据单字段name去重        List<Book> bookList1 = bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Book::getName))), ArrayList::new));        System.out.println("单字段去重结果:" + bookList1.toString());        // 根据多字段name price去重        List<Book> bookList2 = bookList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(book -> book.getName() + "-" + book.getPrice()))), ArrayList::new));        System.out.println("多字段去重结果:" + bookList2.toString());    }}

输出打印结果

单字段去重结果:[Book(id=1, name=书本1, price=1.1), Book(id=3, name=书本2, price=2.2)]多字段去重结果:[Book(id=1, name=书本1, price=1.1), Book(id=3, name=书本2, price=2.2), Book(id=4, name=书本2, price=4.4)]

来源地址:https://blog.csdn.net/qq_42546307/article/details/130520716

--结束END--

本文标题: Java中list集合stream流去重

本文链接: https://lsjlt.com/news/408914.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java中list集合stream流去重
    Java中list集合stream流去重 1. List单个字段去重 list.stream().distinct().collect(Collectors.toList()); 2. List对象...
    99+
    2023-09-15
    java jvm servlet
  • Java中Stream流去除List重复元素的方法
    本文实例为大家分享了Java中Stream流去除List重复元素的具体代码,供大家参考,具体内容如下 业务场景 在开发中我们常常需要过滤List中的重复对象,而重复的定义往往是根据单...
    99+
    2024-04-02
  • java 中如何实现 List 集合去重
    目录1.自定义去重2.利用 Set 集合去重3.使用 Stream 去重总结前言: List 去重指的是将 List 中的重复元素删除掉的过程。此题目考察的是对 List 迭代器、S...
    99+
    2024-04-02
  • java中怎么实现List集合去重
    本篇内容介绍了“java中怎么实现List集合去重”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:List 去重指的是将 List 中的...
    99+
    2023-06-30
  • Java8-Stream流操作List去重问题
    目录Java8Stream流操作List去重List列表运用Java8的stream流按某字段去重问题思路Java8Stream流操作List去重 根据属性去重整体去重使用 dist...
    99+
    2022-11-16
    Java8 Stream流 Java8 List去重 Java8 Stream List去重
  • java中List集合去重的方式有哪些
    去重方式:一、通过set集合的特性,集合元素的唯一性public static List heavyListMethod01(List list){ Set set=new HashSet(list); //...
    99+
    2014-10-12
    java教程 java List 去重 方式
  • java List集合去除null
    方法一:使用迭代器进行遍历和删除 List list = new ArrayList();list.add("A");list.add(null);list.add("B");list.add(null);list.add("C");Ite...
    99+
    2023-09-01
    java list windows
  • java中怎么去掉List集合中重复的元素
    本篇内容介绍了“java中怎么去掉List集合中重复的元素”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&...
    99+
    2024-04-02
  • Java中List集合去重方法以及效率对比
    List集合相信大家在开发过程中几乎都会用到。有时候难免会遇到集合里的数据是重复的,需要进行去除。然而,去重方式有好几种方式,你用的是哪种方式呢?去重方式效率是否是最高效、最优的呢?...
    99+
    2024-04-02
  • Java集合Stream流如何使用
    这篇文章主要介绍“Java集合Stream流如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java集合Stream流如何使用”文章能帮助大家解决问题。Java 中可以使用 java.util...
    99+
    2023-07-05
  • Java关于List集合去重方案详细介绍
    1 常规去重 碰到List去重的问题,除了遍历去重,我们常常想到利用Set集合不允许重复元素的特点,通过List和Set互转,来去掉重复元素。 // 遍历后判断赋给另一个List...
    99+
    2024-04-02
  • List集合去重的方法有哪些
    本篇内容介绍了“List集合去重的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题由来在实际开发的时候,我们经常会碰到这么一个困...
    99+
    2023-06-27
  • Java中,Map、List集合遍历、去重方式超详细总结
    Java中常用的遍历方式有: 普通for循环for-each循环使用迭代器(Iterator)Java8中的Stream   Map集合中常用的遍历方式: 4种 1.使用keySet()方法遍历Map的键: Map map = new...
    99+
    2023-10-07
    java 开发语言
  • stream流的使用-获取list集合中对象的单个字段list集合,进行累加操作
    Stream流的使用 场景及代码案例源于实际项目 1. 需求描述 现存一list集合,其中保存了投资人的信息。 Person (name, age, money rateOfReturn) ...
    99+
    2023-09-08
    java lambda Stream流 stream java8
  • java Stream去重操作
     1.根据对象的某个属性去重: 网上找的stream流去重方法,可以根据类的某个属性去重,这里记录一下 public static Predicate distinctNotByKey(Function keyExtract...
    99+
    2023-09-01
    java python linux
  • Java 使用 Stream 去重
    根据对象单个属性进行去重 在项目中可以会获取到一个集合,集合中有很多重复的数据,但是总感觉转成Set去重不太体面,那就可以试试使用 Stream 来实现根据对象的属性进行去重 将集合转为Stream流后通过Collectors.toM...
    99+
    2023-08-18
    java
  • 使用Stream流筛选出List集合中符合条件的实体对象
    使用stream流筛选出List集合中符合条件的实体对象 注意:使用findFirst()方法返回的是符合条件的第一个元素,使用findAny()方法在多线程并发访问下是符合条件的任意元素 示例: p...
    99+
    2023-08-31
    java jvm 开发语言
  • Java集合-List
    一、List集合概述 java.util.List接口继承自Collection接口,是单列集合的一个重要分支,习惯性地会将实现了List接口的对象称为List集合,在List集合中允许出现重复的...
    99+
    2023-09-07
    java list 数据结构 算法 开发语言
  • Java List 集合怎么去除null元素
    Java List 集合怎么去除null元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。List集合去除null元素使用 for 循环处理集合思路:这种处...
    99+
    2023-06-29
  • 使用java8 新特性stream流对List<Map<String, Object>>集合进行遍历、过滤、查询、去重、排序、分组
    对于一个List类型的数据,可以使用Java 8的新特性stream流来进行遍历、过滤、查询、去重、排序、分组等操作。 遍历: List dataList = new ArrayList();//添加数据Map map1 = new Has...
    99+
    2023-09-08
    list java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作