Der Java Stream-Stream führt Gruppierungsvorgänge für Sammlungen durch

Java Stream bietet groupingBy()Methoden zum Durchführen von Gruppierungsvorgängen für Sammlungen. groupingBy()Die Methode akzeptiert einen FunctionParameter zur Angabe der Gruppierungsbedingung und gibt ein CollectorObjekt zum Durchführen der Gruppierungsoperation zurück.

Hier ist ein Beispiel:

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class GroupingExample {
    
    
    public static void main(String[] args) {
    
    
        // 创建一个包含学生对象的集合
        List<Student> students = Arrays.asList(
                new Student("John", "Math"),
                new Student("Alice", "Science"),
                new Student("Bob", "Math"),
                new Student("Charlie", "Science"),
                new Student("David", "Math")
        );

        // 使用Stream流对学生集合进行专业(course)分组
        Map<String, List<Student>> groupedByCourse = students.stream()
                .collect(Collectors.groupingBy(Student::getCourse));

        // 打印分组结果
        for (Map.Entry<String, List<Student>> entry : groupedByCourse.entrySet()) {
    
    
            String course = entry.getKey();
            List<Student> studentsInCourse = entry.getValue();
            System.out.println("Course: " + course);
            for (Student student : studentsInCourse) {
    
    
                System.out.println("- " + student.getName());
            }
            System.out.println();
        }
    }
}

class Student {
    
    
    private String name;
    private String course;

    public Student(String name, String course) {
    
    
        this.name = name;
        this.course = course;
    }

    public String getName() {
    
    
        return name;
    }

    public String getCourse() {
    
    
        return course;
    }
}

Wenn Sie den obigen Code ausführen, werden die folgenden Ergebnisse ausgegeben:

Course: Math
- John
- Bob
- David

Course: Science
- Alice
- Charlie

Im Beispiel erstellen wir eine Sammlung mit Studentenobjekten students. Dann verwenden wir stream()die Methode, um die Sammlung in einen Stream umzuwandeln, und verwenden groupingBy()die Methode, um die Studentensammlung nach ihrem Hauptfach (Kurs) zu gruppieren. Die Gruppierungsergebnisse werden in einem Map<String, List<Student>>Objekt gespeichert, wobei der Schlüssel der Name des Hauptfachs und der Wert die Liste der Studenten im entsprechenden Hauptfach ist.

Supongo que te gusta

Origin blog.csdn.net/kkwyting/article/details/133426583
Recomendado
Clasificación