Illustration einer tropischen Insel mit Palmen und einem hohen Berg

Java Blog für Programmierer

Code auf verbleibenden Elementen eines Iterators ausführen

· Christian Ullenboom

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.

Kategorien: Insel, Java 8

← Alle Beiträge