可以使用Java 8的Stream API来实现对象集合的去重和合并操作。首先,需要创建一个新的类来表示对象集合中的元素,并重写该类的equals()hashCode()方法,以便进行对象的去重操作。

假设我们有一个Person类,其中有name和age两个字段:

public class Person {
    private String name;
    private int age;

    // constructors, getters, setters, etc.

    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null || getClass() != obj.getClass()) {
            return false;
        }
        Person person = (Person) obj;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}

然后,我们可以使用Stream API来对对象集合进行去重和合并操作,根据name字段进行去重,并将去重后的结果合并为一个新的List<String>

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Person> persons = new ArrayList<>();
        persons.add(new Person("Alice", 25));
        persons.add(new Person("Bob", 30));
        persons.add(new Person("Alice", 25));
        persons.add(new Person("Charlie", 35));

        List<String> uniqueNames = persons.stream()
                .map(Person::getName)
                .distinct()
                .collect(Collectors.toList());

        System.out.println(uniqueNames);
    }
}

运行以上代码,输出结果为:[Alice, Bob, Charlie]

在上述代码中,我们使用了persons.stream()方法将List转换为Stream对象,然后使用map()方法将Person对象映射为name字段的值,接着使用distinct()方法对name字段进行去重操作,最后使用collect(Collectors.toList())方法将去重后的结果收集到一个新的List中。

这样,我们就可以根据某一字段对对象集合进行去重,并将去重后的结果合并为一个新的List

java8对象集合去重根据某一字段并合为新的listString

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

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