可以使用 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'}
Java 8 使用 Stream API 根据 userId 去重 List 对象集合

原文地址: https://www.cveoy.top/t/topic/qEkO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录