Tutorials  /  JavaScript

Java Spliterator - Leitfaden

Ccentron Redaktion · März 2024 ·4 Min. Lesezeit ·JavaScript, Tutorial

Wie Iterator und ListIterator ist Spliterator ein Java Iterator, der dazu dient, Elemente einzeln von einem über Liste implementierten Objekt zu iterieren. Einige wichtige Punkte über den Java Spliterator sind:

  • Java Spliterator ist eine Schnittstelle in der Java Collection API.
  • Spliterator wurde in der Java 8-Version im java.util-Paket eingeführt.
  • Er unterstützt die Parallelprogrammierung.
  • Wir können ihn sowohl für Collection API- als auch für Stream API-Klassen verwenden.
  • Er bietet Merkmale über Collection- oder API-Objekte.
  • Dieser Iterator kann NICHT für über Map implementierte Klassen verwendet werden.
  • Er verwendet die tryAdvance()-Methode, um Elemente einzeln in mehreren Threads zur Unterstützung der Parallelverarbeitung zu iterieren.
  • Er verwendet die forEachRemaining()-Methode, um Elemente sequenziell in einem einzigen Thread zu iterieren.
  • Er verwendet die trySplit()-Methode, um sich selbst in Sub-Spliteratoren zur Unterstützung der Parallelverarbeitung aufzuteilen.
  • Spliterator unterstützt sowohl sequenzielle als auch parallele Datenverarbeitung.

Der Spliterator selbst bietet kein Verhalten zur Parallelprogrammierung. Er stellt jedoch einige Methoden zur Unterstützung bereit. Entwickler sollten die Methoden der Spliterator-Schnittstelle nutzen und die Parallelprogrammierung unter Verwendung des Fork/Join-Frameworks implementieren (ein guter Ansatz).

Hauptfunktionalitäten des Spliterator

  • Aufteilen der Quelldaten.
  • Verarbeiten der Quelldaten.
VM

Passende Infrastruktur bei centron

Node-Anwendungen wollen deployt werden: ccloud³ VMs mit vollem Root-Zugriff ab 3,12 € im Monat – oder gleich als Managed Server, wenn der Betrieb nicht bei Ihnen liegen soll. Cloud Server mieten →

Java Spliterator Methoden

In diesem Abschnitt listen wir alle Java Spliterator Methoden einzeln auf mit einer nützlichen Beschreibung.

  • int characteristics(): Gibt eine Reihe von Merkmalen dieses Spliterators und seiner Elemente zurück.
  • long estimateSize(): Gibt eine Schätzung der Anzahl der Elemente zurück, denen man bei einem forEachRemaining()-Durchlauf begegnen würde, oder gibt Long.MAX_VALUE zurück, wenn unendlich, unbekannt oder zu kostspielig zu berechnen.
  • default void forEachRemaining(Consumer<? super T> action): Führt die angegebene Aktion für jedes verbleibende Element sequenziell im aktuellen Thread durch, bis alle Elemente verarbeitet wurden oder die Aktion eine Ausnahme wirft.
  • default Comparator<? super T> getComparator(): Wenn die Quelle dieses Spliterators durch einen Comparator SORTIERT ist, gibt dieser den Comparator zurück.
  • default long getExactSizeIfKnown(): Bequemlichkeitsmethode, die estimateSize() zurückgibt, wenn dieser Spliterator SIZED ist, sonst -1.
  • default boolean hasCharacteristics(int characteristics): Gibt true zurück, wenn die characteristics() dieses Spliterators alle angegebenen Merkmale enthalten.
  • boolean tryAdvance(Consumer<? super T> action): Führt die angegebene Aktion an einem verbleibenden Element durch, gibt true zurück, wenn ein solches existiert, sonst false.
  • Spliterator<T> trySplit(): Wenn dieser Spliterator teilbar ist, gibt er einen Spliterator zurück, der Elemente abdeckt, die nach Rückgabe aus dieser Methode nicht mehr von diesem Spliterator abgedeckt werden.

Java Spliterator Beispiel

In diesem Abschnitt diskutieren wir, wie man ein Java Spliterator-Objekt mit spliterator() erstellt und entwickeln ein einfaches Beispiel.

Python
import java.util.Spliterator;
import java.util.ArrayList;
import java.util.List;

public class SpliteratorSequentialIteration
{
  public static void main(String[] args) 
  {
    List<String> names = new ArrayList<>();
    names.add("Rams");
    names.add("Posa");
    names.add("Chinni");
        
    // Getting Spliterator
    Spliterator<String> namesSpliterator = names.spliterator();
        
    // Traversing elements
    namesSpliterator.forEachRemaining(System.out::println);            
   }
}

Output:

Code
Rams
Posa
Chinni

Wenn wir das obige Programm und den Output betrachten, können wir leicht verstehen, dass diese Spliterator.forEachRemaining()-Methode auf die gleiche Weise funktioniert wie ArrayList.foreach(). Ja, beide funktionieren auf ähnliche Weise.

Vorteile des Spliterator

  • Im Gegensatz zu Iterator und ListIterator unterstützt er die Parallelprogrammierung.
  • Im Gegensatz zu Iterator und ListIterator unterstützt er sowohl sequenzielle als auch parallele Datenverarbeitung.
  • Im Vergleich zu anderen Iteratoren bietet er eine bessere Leistung.

Iterator vs Spliterator

Iterator Spliterator
Eingeführt in Java 1.2. Eingeführt in Java 1.8.
Er ist ein Iterator für die gesamte Collection API. Er ist ein Iterator sowohl für die Collection als auch für die Stream API, außer für über Map implementierte Klassen.
Er ist ein universeller Iterator. Er ist KEIN universeller Iterator.
Er unterstützt KEINE Parallelprogrammierung. Er unterstützt die Parallelprogrammierung.

Das ist alles zum Thema Spliterator in Java.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie JavaScript
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren