java stream distinct去重 您所在的位置:网站首页 stream流distinct自定义去重 java stream distinct去重

java stream distinct去重

2024-03-14 21:59| 来源: 网络整理| 查看: 265

Java Stream 类中的 distinct() 方法可用于去除流中的重复元素。这是通过在内部使用 Set 来实现的,因此会根据元素的 equals() 和 hashCode() 方法判断元素是否相同。

例如,假设你有一个字符串列表,你可以使用 distinct() 方法将其转换为一个字符串流,并且会去除所有重复的字符串:

List list = Arrays.asList("apple", "banana", "apple", "cherry", "banana"); List distinctList = list.stream().distinct().collect(Collectors.toList()); // distinctList: ["apple", "banana", "cherry"]

请注意,如果你希望按照特定的顺序对流进行去重,则可以使用 sorted() 方法在调用 distinct() 之前对流进行排序。

List list = Arrays.asList("apple", "banana", "cherry", "apple", "banana"); List distinctList = list.stream() .sorted() .distinct() .collect(Collectors.toList()); // distinctList: ["apple", "banana", "cherry"]

另外,如果你希望根据某些自定义规则对流进行去重,则可以使用 distinct() 方法的另一个重载版本,它接受一个谓词函数,该函数用于确定两个元素是否相同。例如,假设你希望根据字符串的长度而不是字符串本身来去重,你可以这样写:

List list = Arrays.asList("apple", "banana", "cherry", "apricot", "apple", "banana"); List distinctList = list.stream() .dist


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有