Problem:
Sie haben eine Schnittstelle, die ein Iterable
Lösung:
Um ein Iterable in einen Stream zu konvertieren, ohne es in eine Liste umzuwandeln, können Sie verwenden die StreamSupport.stream()-Methode. Diese Methode benötigt ein Spliterator-Objekt, das von der spliterator()-Methode von Iterable abgerufen werden kann.
Hier ist ein Beispiel für die Konvertierung eines Iterable in einen Stream:
Iterable<T> iterable = ...; Stream<T> stream = StreamSupport.stream(iterable.spliterator(), false);
Sobald Sie dies getan haben Wenn Sie einen Stream verwenden, können Sie die üblichen Stream-Vorgänge wie Filtern, Zuordnen usw. ausführen reduzieren.
Hinweis:
Die StreamSupport.stream()-Methode bietet eine effizientere Möglichkeit, ein Iterable in einen Stream zu konvertieren, als die Methode spliteratorUnknownSize() direkt zu verwenden . Die Methode spliteratorUnknownSize() erstellt immer ein neues Spliterator-Objekt, was ineffizient sein kann, wenn Iterable bereits eine Sammlung ist. Die StreamSupport.stream()-Methode verwendet das vorhandene Spliterator-Objekt aus Iterable, sofern verfügbar, was zu einer verbesserten Leistung führt.
Das obige ist der detaillierte Inhalt vonWie konvertiert man Java-Iterables effizient in Streams?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!