java stream 数组对象去重
时间: 2024-10-10 11:13:05 浏览: 25
在Java中,可以使用Stream API对数组中的对象进行去重操作。Stream API提供了一种简洁的方式来处理集合数据,包括去除重复元素。以下是一个简单的示例,假设我们有一个Person对象的数组,想要通过对象的某个属性(如姓名)来进行去重:
```java
import java.util.Arrays;
import java.util.stream.Collectors;
class Person {
String name;
// 构造函数和getter/setter...
}
// 假设personsArray是一个Person类型的数组
Person[] personsArray = ...; // 包含一些重复的Person对象
// 使用Stream的distinct()方法去除重复
Person[] distinctPersons = Arrays.stream(personsArray)
.distinct()
.toArray(Person[]::new);
```
这里`Arrays.stream()`将数组转换为Stream,`distinct()`方法则返回一个新的Stream,其中元素都是唯一的(基于equals()方法),最后使用`toArray()`将流转换回数组。
如果你需要基于自定义规则去重,可以在distinct()之前添加一个filter()方法,传入一个Predicate来定义唯一性的条件。