Heim >Java >javaLernprogramm >Wie kann ich einen Iterable in einen Java 8-Stream konvertieren, ohne eine Liste zu verwenden?
Problem:
Wie kann ich ein Iterable mit Java 8 manipulieren? API streamen, ohne sie in eine Liste zu konvertieren?
Lösung:
tl;dr: Verwenden Sie StreamSupport.stream(iterable.spliterator(), false), um einen Stream aus dem Iterable zu erstellen.
Detaillierte Erklärung:
Iterable stellt eine spliterator()-Methode bereit, die einen Spliterator zurückgibt, der zum Erstellen eines verwendet werden kann Stream mit StreamSupport.stream. Hier ist der Codeausschnitt:
StreamSupport.stream(iterable.spliterator(), false) .filter(...) .moreStreamOps(...);
Dieser Ansatz vermeidet unnötige Konvertierungen in eine Liste, was die Leistung und den Speicherverbrauch verbessern kann. StreamSupport.stream benötigt zwei Argumente:
Der resultierende Stream kann dann mithilfe von Stream-API-Operationen wie Filter, Karte usw. manipuliert werden.
Vorteile:
Die Verwendung von StreamSupport.stream bietet die folgenden Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann ich einen Iterable in einen Java 8-Stream konvertieren, ohne eine Liste zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!