java stream distinct去重 | 您所在的位置:网站首页 › stream流distinct自定义去重 › java stream distinct去重 |
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 实验室设备网 版权所有 |