按属性对对象进行分组
考虑一个场景,您有一个对象列表,需要根据特定属性来组织它们。例如,您想要根据位置对学生列表进行分组。
在这种情况下,您可以拥有如下学生列表:
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中文网其他相关文章!