Heim >Java >javaLernprogramm >Wie gruppiere ich Java-Objekte mithilfe von Streams nach Attributen?
Wie Sie bereits erwähnt haben, möchten Sie eine Liste von Objekten nach einem Attribut namens „Standort“ gruppieren. Hier ist eine saubere Möglichkeit, dies mithilfe der Streams von Java 8 zu erreichen:
import java.util.*; import java.util.stream.Collectors; 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")); // Group the list by "Location" attribute using Streams Map<String, List<Student>> studlistGrouped = studlist.stream().collect(Collectors.groupingBy(w -> w.stud_location)); // Print the results for (String location : studlistGrouped.keySet()) { System.out.println("Location: " + location); for (Student student : studlistGrouped.get(location)) { System.out.println("\t" + student.stud_id + " " + student.stud_name); } } } 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; } } }
Dieses Programm verwendet die Collectors.groupingBy()-Methode der Streams-API, um die Schüler nach ihren Standorten zu gruppieren. Die resultierende Karte (studlistGrouped) enthält Schlüssel als Standorte und Werte als Listen von Studenten an diesem Standort.
Das obige ist der detaillierte Inhalt vonWie gruppiere ich Java-Objekte mithilfe von Streams nach Attributen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!