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.
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.
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!