Konvertieren Sie Iterable in Java in Stream

Shubham Vora 12 Oktober 2023
Konvertieren Sie Iterable in Java in Stream

In Java können wir den Iterator verwenden, um durch jedes Sammlungselement zu iterieren. Der Stream ist eine Pipeline von Objekten aus Sammlungen.

Es kann zwei Arten von Streams geben. Einer ist parallel und der andere ist ein sequentieller Stream.

In diesem Artikel lernen wir eine Methode kennen, um das Iterable in Stream umzuwandeln.

Verwenden Sie die Methode StreamSupport.stream(), um Iterable in Stream in Java umzuwandeln

Keine Methode in der iterable-Schnittstelle kann iterable direkt in stream umwandeln. Also müssen wir die stream()-Methode der StreamSupport-Klasse verwenden.

Benutzer können der folgenden Syntax folgen, um die Methode stream() zu verwenden.

Spliterator<T> spliter = iter.spliterator();
return StreamSupport.stream(spliter, isParallel);

Parameter:

spliter Es ist ein spliterator des Iterators, den wir mit der Methode Iterable.spliterator() konvertiert haben.
isParallel Ein boolescher Wert definiert, ob der Stream parallel oder sequenziell ist. Benutzer sollten den booleschen Wert true übergeben, um den parallelen Stream zu erhalten.

Im folgenden Beispiel haben wir die Iterierbarkeit von Ganzzahlen erstellt. Wir haben die Funktion IterToStream() aufgerufen und das Iterable als Argument übergeben, das den Stream eines bestimmten Iterable zurückgibt.

In der Funktion ItrToStream() wandeln wir das Iterable in spliterator um. Danach haben wir die Methode StreamSupport.stream() verwendet, um den spliterator in einen Stream umzuwandeln.

Endlich drucken wir den Stream.

import java.util.*;
import java.util.stream.*;
class Test {
  // function to convert iterable to stream
  public static <T> Stream<T> ItrToStream(Iterable<T> iter) {
    // converting iterable to spliter
    Spliterator<T> spliter = iter.spliterator();
    // using the stream() method of StreamSupport class
    return StreamSupport.stream(spliter, false);
  }
  public static void main(String[] args) {
    // creating array list of Integers
    Iterable<Integer> iterable = Arrays.asList(12121, 212123, 12213, 21212, 21212);
    //  calling the IterToStream Function
    Stream<Integer> stream = ItrToStream(iterable);
    // Print the element of the sequential stream.
    stream.forEach(s -> System.out.println(s));
  }
}

Ausgang:

12121
212123
12213
21212
21212

Wir haben erfolgreich gelernt, in Java mit der Methode StreamSupport.stream() iterable in stream umzuwandeln.

Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

Verwandter Artikel - Java Stream