Heim  >  Artikel  >  Java  >  Stream-API in Java 8: So verwenden Sie die Collectors-Klasse für die Gruppierung und Statistik von Sammlungen

Stream-API in Java 8: So verwenden Sie die Collectors-Klasse für die Gruppierung und Statistik von Sammlungen

王林
王林Original
2023-07-31 18:21:151103Durchsuche

Stream-API in Java 8: So verwenden Sie die Collectors-Klasse zum Gruppieren und Statistiken von Sammlungen

Einführung:
In Java 8 wird die Stream-API eingeführt, ein funktionales Programmierkonzept, das uns eine effizientere Nutzung ermöglicht Behandeln Sie Sammlungsdaten auf prägnante und elegante Weise. Die Stream-API bietet umfangreiche Funktionen, darunter das Gruppieren und Zählen von Sammlungen. In diesem Artikel wird erläutert, wie Sie die Collectors-Klasse verwenden, um diese Funktionalität zu erreichen.

  1. Sammlungsgruppe
    In der tatsächlichen Entwicklung müssen wir Sammlungen häufig nach einem bestimmten Attribut gruppieren, um die spätere Verarbeitung zu erleichtern. In Java 8 können Sie die Methode „groupBy()“ der Klasse „Collectors“ verwenden, um die Gruppierung von Sammlungen zu implementieren.

Der Beispielcode lautet wie folgt:

class Person {
    private String name;
    private String gender;
    private int age;

    public Person(String name, String gender, int age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public int getAge() {
        return age;
    }
}

List<Person> persons = Arrays.asList(
        new Person("John", "male", 20),
        new Person("Jane", "female", 25),
        new Person("Tom", "male", 30),
        new Person("Emily", "female", 35)
);

Map<String, List<Person>> groupedByGender = persons.stream()
        .collect(Collectors.groupingBy(Person::getGender));

System.out.println(groupedByGender);

Das Ausgabeergebnis ist:

{female=[Person{name='Jane', gender='female', age=25}, Person{name='Emily', gender='female', age=35}], male=[Person{name='John', gender='male', age=20}, Person{name='Tom', gender='male', age=30}]}

Im obigen Code haben wir zunächst eine Personenklasse als Beispiel erstellt, die Namens-, Geschlechts- und Altersattribute enthält. Anschließend wird eine Listensammlung von Person-Objekten erstellt. Als nächstes konvertieren Sie die Sammlung über die Methode stream() in einen Stream. Verwenden Sie abschließend die Methode groupBy() der Klasse Collectors, um nach dem Geschlechtsattribut des Person-Objekts zu gruppieren. Die Ergebnisse werden in einer Map-Sammlung gespeichert.

  1. Statistik von Mengen
    In der Praxis müssen wir möglicherweise die Elemente in der Menge zählen, z. B. die Anzahl der Elemente berechnen, summieren, mitteln usw. Die Stream-API von Java 8 bietet eine Reihe statistischer Methoden, die wir mithilfe von summingInt(), averagingInt(), counting() und anderen Methoden der Collectors-Klasse implementieren können.

Der Beispielcode lautet wie folgt:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

int sum = numbers.stream().collect(Collectors.summingInt(Integer::intValue));
double average = numbers.stream().collect(Collectors.averagingInt(Integer::intValue));
long count = numbers.stream().collect(Collectors.counting());

System.out.println("Sum: " + sum);
System.out.println("Average: " + average);
System.out.println("Count: " + count);

Das Ausgabeergebnis ist:

Sum: 15
Average: 3.0
Count: 5

Im obigen Code erstellen wir zunächst eine Liste vom Typ Integer, die eine Reihe von Zahlen enthält. Als nächstes wird die Methode sumingInt() zur Berechnung der Summe, die Methode averagingInt() zur Berechnung des Durchschnitts und die Methode counting() zur Berechnung der Zahl verwendet. Schließlich werden die Ergebnisse über die Methode „collect()“ der Klasse „Collectors“ abgerufen.

Zusammenfassung:
Mit der Stream-API und der Collectors-Klasse in Java 8 können wir Gruppierungs- und Statistikoperationen für Sammlungen präziser und eleganter durchführen. Diese Funktion verbessert nicht nur die Lesbarkeit des Codes, sondern erhöht auch die Flexibilität des Programms erheblich.

Das Obige ist die Einführung dieses Artikels in die Sammlungsgruppierung und Statistik der Stream-API und der Collectors-Klasse in Java 8. Ich hoffe, dass er für Sie hilfreich sein wird. Danke!

Das obige ist der detaillierte Inhalt vonStream-API in Java 8: So verwenden Sie die Collectors-Klasse für die Gruppierung und Statistik von Sammlungen. 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