Code auf verbleibenden Elementen eines Iterators ausführen

In Java 8 ist in der Schnittstelle Iterator eine neue Default-Methode forEachRemaining(Consumer<? super E> action) eingezogen, die ein beliebiges Stückchen Code – transportiert über einen Consumer – auf jedem Element ausführt. Die Default-Methode ist ein Zweizeiler:

java.util.Iterator.java, forEachRemaining()

default void forEachRemaining( Consumer<? super E> action ) {

  Objects.requireNonNull( action );

  while ( hasNext() )

    action.accept( next() );

}

Mit Hilfe dieser Methode lässt sich eine externe Iteration über eine selbstgebaute Schleife in eine interne Iteration umbauen und Lambda-Ausdrücke machen die Implementierung der Schnittstelle kurz.

Beispiel: Gib jedes Argument der Konsoleneingabe aus:

new Scanner( System.in ).forEachRemaining( System.out::println );

 

interface java.util.Iterator<E>

  • default void forEachRemaining(Consumer<? super E> action)
    Führt action auf jedem kommenden Element des Iterators bis zum letzten Element aus.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert