首页 > Java > java教程 > Java 8 的`Collectors.groupingBy`方法如何有效地按属性对对象进行分组?

Java 8 的`Collectors.groupingBy`方法如何有效地按属性对对象进行分组?

Patricia Arquette
发布: 2024-11-17 15:59:02
原创
569 人浏览过

How Can Java 8's `Collectors.groupingBy` Method Efficiently Group Objects by Attribute?

按属性对对象进行分组

考虑一个场景,您有一个对象列表,需要根据特定属性来组织它们。例如,您想要根据位置对学生列表进行分组。

在这种情况下,您可以拥有如下学生列表:

public class Grouping {
    public static void main(String[] args) {

        List<Student> studlist = new ArrayList<Student>();
        studlist.add(new Student("1726", "John", "New York"));
        studlist.add(new Student("4321", "Max", "California"));
        studlist.add(new Student("2234", "Andrew", "Los Angeles"));
        studlist.add(new Student("5223", "Michael", "New York"));
        studlist.add(new Student("7765", "Sam", "California"));
        studlist.add(new Student("3442", "Mark", "New York"));

    }
}

class Student {
    String stud_id;
    String stud_name;
    String stud_location;

    Student(String sid, String sname, String slocation) {
        this.stud_id = sid;
        this.stud_name = sname;
        this.stud_location = slocation;
    }
}
登录后复制

至根据位置对这些学生进行分组,可以使用 Java 8 的 Collectors.groupingBy 方法,如下所示:

    Map<String, List<Student>> studlistGrouped = studlist.stream()
                                                    .collect(Collectors.groupingBy(w -> w.stud_location));
登录后复制

这行代码将学生分组通过其 Stud_location 属性在 Studlist 中,生成一个映射,其中键是位置(例如“纽约”),相应的值是属于这些位置的学生列表。

这种方法提供了一种简洁明了的方法根据指定属性对对象进行分组的有效方法,帮助您高效地组织和分析数据。

以上是Java 8 的`Collectors.groupingBy`方法如何有效地按属性对对象进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板