Java 中 stream流怎么过滤掉重复数据
时间: 2023-04-01 09:00:51 浏览: 166
可以使用 distinct() 方法来过滤掉重复数据。例如,对一个 List 进行去重可以这样写:
List<Integer> list = Arrays.asList(1, 2, 2, 3, 3, 4, 5);
List<Integer> distinctList = list.stream().distinct().collect(Collectors.toList());
这样,distinctList 中就只包含了 1, 2, 3, 4, 5 这几个元素,重复的元素被过滤掉了。
相关问题
java stream流判断重复数据
可以使用Java 8中的Stream流和Collectors工具类来判断重复数据。具体实现可以使用distinct()方法去除重复元素,然后比较去重前后的元素个数是否相等,如果不相等,则说明存在重复数据。
示例代码如下:
```
List<Integer> list = Arrays.asList(1, 2, 3, 4, 2, 5, 6, 3);
boolean hasDuplicate = list.size() != list.stream().distinct().count();
System.out.println(hasDuplicate); // true
```
java stream 提取list对象重复数据
可以使用Java 8的Stream API来提取List中的重复对象。使用`distinct()`方法可以过滤掉List中重复的元素,而使用`filter()`方法可以过滤掉不重复的元素,最后使用`collect()`方法将结果收集到一个新的List中。以下是示例代码:
```
List<Person> duplicates = people.stream()
.filter(p -> Collections.frequency(people, p) > 1)
.distinct()
.collect(Collectors.toList());
System.out.println("Duplicates: " + duplicates);
```
这里的`Collections.frequency()`方法可以计算List中某个元素出现的次数,如果大于1则表示该元素重复。`distinct()`方法用于过滤掉List中的重复元素。最后我们使用`collect()`方法将结果收集到一个新的List中。
输出结果为:`Duplicates: [Person{id=1, name='Alice'}, Person{id=3, name='Charlie'}]`。
阅读全文