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 undforEachfü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.