Heim > Java > javaLernprogramm > Hauptteil

Wie gruppiere ich Java-Objekte mithilfe von Streams nach Attributen?

Susan Sarandon
Freigeben: 2024-11-18 05:33:02
Original
383 Leute haben es durchsucht

How to Group Java Objects by Attributes Using Streams?

Gruppieren von Objekten nach Attributen mithilfe von Java Streams

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;
        }
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage