Wie lassen sich Arrays nach bestimmten Kriterien filtern? v.8.0
v.8.0Im Beispiel wird zunächst
ein Integer
-Array der Länge 100 erzeugt, das
darauf in einer Schleife mit Pseudo-Zufallswerten zwischen 0 und
99 belegt wird.
In der darauf folgenden Zeile finden
kaskadierte Methodenaufrufe statt, wie sie für Streams
typisch sind. Sie verwenden Lambda-Ausdrücke
und liefern bis auf den letzten, forEach()
, selbst
jeweils wieder einen Stream, der weiterverarbeitet werden kann:
stream()
erzeugt aus dem übergebenen Array einenStream
, einen zur Weiterverarbeitung spezialisierten Daten-Wrapper, der die Daten selbst nicht manipuliert.filter()
liefert einen daraus generiertenStream
, der alle geraden Zahlen des Arrays enthält.sorted()
sortiert diesen aufsteigend undforEach
führt auf jedem enthaltenen Element eine Operation aus. Hier wird die Ausgabe auf die Konsole durchgeführt.
import java.util.Arrays;
import java.util.Random;
public class ArrayFiltern {
public static void main(String[] args) {
Integer[] i = new Integer[100];
for(int num = 0; num < i.length; num++){
i[num] = new Random().nextInt(100);
}
Arrays.stream(i).filter(n -> n%2==0).sorted().forEach(k -> System.out.println(k));
}
}
Als Ergebnis werden die erzeugten, ganzzahlig durch 2 teilbaren Zufallswerte in aufsteigender Reihenfolge ausgegeben.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.