Wie lassen sich Arrays nach bestimmten Kriterien filtern? v.8.0

In Java 8 wurde mit Streams eine Möglichkeit geschaffen, sequenzielle und parallele Operationen auf Arrays und Listen auszuführen. Dies ermöglicht auch, diese auf sehr effiziente Weise zu filtern.

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 die letzte, forEach() , selbst jeweils wieder einen Stream, der weiterverarbeitet werden kann:

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));
    }
}