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

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

Susan Sarandon
Susan SarandonOriginal
2024-11-18 05:33:02374Durchsuche

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;
        }
    }
}

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!

Stellungnahme:
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