How to Group Objects by an Attribute in Java
Grouping objects by a specific attribute is a common operation in programming. To do this, you can use the Collectors.groupingBy() method in Java 8.
Consider the following code, which creates a list of Student objects and stores them in a list:
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; } }
To group the Student objects by their location, you can use the following code:
Map<String, List<Student>> studlistGrouped = studlist.stream().collect(Collectors.groupingBy(w -> w.stud_location));
This code uses the Collectors.groupingBy() method to group the Student objects by their stud_location attribute. The result is a Map that contains the location as the key and a List of Student objects as the value.
This approach provides a clean and concise way to group objects by an attribute in Java 8.
The above is the detailed content of How to Group Java Objects by an Attribute Using Collectors.groupingBy()?. For more information, please follow other related articles on the PHP Chinese website!