首页 > Java > java教程 > 如何使用 Collectors.groupingBy() 按属性对 Java 对象进行分组?

如何使用 Collectors.groupingBy() 按属性对 Java 对象进行分组?

DDD
发布: 2024-11-23 14:06:15
原创
980 人浏览过

How to Group Java Objects by an Attribute Using Collectors.groupingBy()?

如何在 Java 中按属性对对象进行分组

按特定属性对对象进行分组是编程中的常见操作。为此,您可以使用 Java 8 中的 Collectors.groupingBy() 方法。

考虑以下代码,它创建一个 Student 对象列表并将它们存储在列表中:

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

        List<Student> studlist = new ArrayList<>();
        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;
    }
}
登录后复制

要按位置对 Student 对象进行分组,可以使用以下代码:

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

此代码使用Collectors.groupingBy() 方法按 Stud_location 属性对 Student 对象进行分组。结果是一个 Map,其中包含作为键的位置和作为值的 Student 对象列表。

这种方法提供了一种在 Java 8 中按属性对对象进行分组的干净简洁的方法。

以上是如何使用 Collectors.groupingBy() 按属性对 Java 对象进行分组?的详细内容。更多信息请关注PHP中文网其他相关文章!

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