Java List 泛型分组:根据字段实现高效分组
要根据泛型的某个字段进行分组,可以使用Collectors.groupingBy()方法来实现。\n\n假设有一个Person类,其中有两个字段name和age,我们要根据age字段进行分组,可以使用以下代码:\n\njava\nclass Person {\n private String name;\n private int age;\n\n // 构造方法和getter/setter方法省略\n}\n\nList<Person> persons = new ArrayList<>();\npersons.add(new Person("Alice", 20));\npersons.add(new Person("Bob", 30));\npersons.add(new Person("Charlie", 20));\n\nMap<Integer, List<Person>> groupedPersons = persons.stream()\n .collect(Collectors.groupingBy(Person::getAge));\n\n// 打印分组结果\ngroupedPersons.forEach((age, group) -> {\n System.out.println("Age: " + age);\n group.forEach(person -> System.out.println(" " + person.getName()));\n});\n\n\n上述代码中,首先创建了一个Person列表persons,然后使用stream()方法将其转换为流。接着使用Collectors.groupingBy()方法,将流按照Person::getAge方法的返回值进行分组。最后将分组结果存储在groupedPersons变量中。\n\n最后,通过forEach()方法遍历groupedPersons,打印分组结果。
原文地址: https://www.cveoy.top/t/topic/pVfQ 著作权归作者所有。请勿转载和采集!