可以使用Java 8的Stream API来实现对象集合的去重和合并操作。首先,需要创建一个新的类来表示对象集合中的元素,并重写该类的equals()hashCode()方法,以便进行对象的去重操作。\n\n假设我们有一个Person类,其中有name和age两个字段:\n\njava\npublic class Person {\n private String name;\n private int age;\n\n // constructors, getters, setters, etc.\n\n @Override\n public boolean equals(Object obj) {\n if (this == obj) {\n return true;\n }\n if (obj == null || getClass() != obj.getClass()) {\n return false;\n }\n Person person = (Person) obj;\n return age == person.age && Objects.equals(name, person.name);\n }\n\n @Override\n public int hashCode() {\n return Objects.hash(name, age);\n }\n}\n\n\n然后,我们可以使用Stream API来对对象集合进行去重和合并操作,根据name字段进行去重,并将去重后的结果合并为一个新的List<String>:\n\njava\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.stream.Collectors;\n\npublic class Main {\n public static void main(String[] args) {\n List<Person> persons = new ArrayList<>();\n persons.add(new Person("Alice", 25));\n persons.add(new Person("Bob", 30));\n persons.add(new Person("Alice", 25));\n persons.add(new Person("Charlie", 35));\n\n List<String> uniqueNames = persons.stream()\n .map(Person::getName)\n .distinct()\n .collect(Collectors.toList());\n\n System.out.println(uniqueNames);\n }\n}\n\n\n运行以上代码,输出结果为:[Alice, Bob, Charlie]。\n\n在上述代码中,我们使用了persons.stream()方法将List转换为Stream对象,然后使用map()方法将Person对象映射为name字段的值,接着使用distinct()方法对name字段进行去重操作,最后使用collect(Collectors.toList())方法将去重后的结果收集到一个新的List中。\n\n这样,我们就可以根据某一字段对对象集合进行去重,并将去重后的结果合并为一个新的List。

Java 8 Stream API 对象集合去重和合并 - 根据字段生成新 List<String>

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

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