利用java8的流处理,写一个对一个list的对象的全部属性做去重的java代码
时间: 2024-03-27 15:40:35 浏览: 28
Java中List集合对象去重及按属性去重的8种方法
5星 · 资源好评率100%
假设有一个List<Student>,其中Student类有id、name、age三个属性,现在要对这个List进行去重操作,可以按照以下方式使用Java 8的流处理:
```java
List<Student> distinctList = studentList.stream()
.distinct()
.collect(Collectors.toList());
```
上述代码中,使用了stream()方法将List转化为Stream,然后使用distinct()方法对Stream中的元素进行去重操作,最后使用collect(Collectors.toList())方法将去重后的Stream转化为List。
需要注意的是,上述代码中的Student类需要重写equals()和hashCode()方法,以便于进行去重操作。例如,可以按照id属性进行去重,重写代码如下:
```java
@Override
public boolean equals(Object o) {
if (o == this) return true;
if (!(o instanceof Student)) {
return false;
}
Student student = (Student) o;
return id == student.id;
}
@Override
public int hashCode() {
return Objects.hash(id);
}
```
阅读全文