Java 8 使用 Stream API 根据 userId 去重 List 对象集合
可以使用 Java 8 的 Stream API 来实现 List 对象集合根据 userId 去重的操作。首先,需要使用 distinct 方法来去除重复的元素。然后,可以使用 collect 方法将去重后的元素重新收集为一个 List 对象。
下面是一个示例代码:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<User> userList = new ArrayList<>();
userList.add(new User(1, 'John'));
userList.add(new User(2, 'Jane'));
userList.add(new User(1, 'John'));
userList.add(new User(3, 'Bob'));
userList.add(new User(2, 'Jane'));
List<User> distinctUserList = userList.stream()
.distinct()
.collect(Collectors.toList());
distinctUserList.forEach(System.out::println);
}
}
class User {
private int userId;
private String name;
public User(int userId, String name) {
this.userId = userId;
this.name = name;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
User user = (User) obj;
return userId == user.userId;
}
@Override
public int hashCode() {
return Objects.hash(userId);
}
@Override
public String toString() {
return 'User{' +
'userId=' + userId +
', name=' + name + ''' +
'}';
}
}
输出结果为:
User{userId=1, name='John'}
User{userId=2, name='Jane'}
User{userId=3, name='Bob'}
原文地址: https://www.cveoy.top/t/topic/qEkO 著作权归作者所有。请勿转载和采集!