© DrHitch/Shutterstock.com
Shortcuts
Java 9 Streams

5 Kleinere Streams-Pattern-Beispiele

Im Folgenden zeige ich anhand von drei kleineren Beispielen, was mit Java 9 Streams unter anderem machbar ist.

Shortcut Autorenteam


5.1 Ist es eine Primzahl? Als kleines Anfangsbeispiel hier eine Implementierung, mit der sich herausfinden lässt, ob es sich bei einer Zahl um eine Primzahl handelt. Die Methode isPrime2 ist ohne Streams realisiert, isPrime1 ist das mittels Stream realisierte Äquivalent. Bei dieser recht einfachen Implementierung ist der Unterschied zwischen den Implementierungen noch recht klein. Es zeigt aber schon die unterschiedliche Lesbarkeit, meines Erachtens nach zugunsten der Stream-Version (Listing 5.1).public static void main(String[] args) { for(int i = 0; i= 2 && IntStream .rangeClosed(2, (int) (Math.sqrt(n))) .allMatch((d) -> n % d != 0);}public static boolean isPrime2(int n) { if (n fibStream = makeFibStream(10); fibStream.forEachOrdered(System.out::println);}public static Stream makeFibStream() { return(Stream.generate(new FibonacciSupplier()));}public static Stream makeFibStream(int numFibs) { return(makeFibStream().limit(numFibs));}public static List makeFibList(int numFibs) { return(makeFibStream(numFibs) .collect(Collectors.toList()));}public static class FibonacciSupplier implements Supplier { private long previous = 0; private long current = 1; @Override public Long get() { long next = current + previous; previous = current; current = next; return(previous); }}Hier gibt es allerdings einige Nachteile, oder besser gesagt Dinge, die auf jeden Fall berücksichtigt werden müssen.Wenn eine Supplier-Instanz erzeugt wird, muss sichergestellt sein, dass diese nicht zur Erzeugung von mehr als einem Stream verwendet wird. Wenn dem so ist, kann kann es zu Nebenläufigkeitsproblemen ko...

Shortcuts
Java 9 Streams

5 Kleinere Streams-Pattern-Beispiele

Im Folgenden zeige ich anhand von drei kleineren Beispielen, was mit Java 9 Streams unter anderem machbar ist.

Shortcut Autorenteam


5.1 Ist es eine Primzahl? Als kleines Anfangsbeispiel hier eine Implementierung, mit der sich herausfinden lässt, ob es sich bei einer Zahl um eine Primzahl handelt. Die Methode isPrime2 ist ohne Streams realisiert, isPrime1 ist das mittels Stream realisierte Äquivalent. Bei dieser recht einfachen Implementierung ist der Unterschied zwischen den Implementierungen noch recht klein. Es zeigt aber schon die unterschiedliche Lesbarkeit, meines Erachtens nach zugunsten der Stream-Version (Listing 5.1).public static void main(String[] args) { for(int i = 0; i= 2 && IntStream .rangeClosed(2, (int) (Math.sqrt(n))) .allMatch((d) -> n % d != 0);}public static boolean isPrime2(int n) { if (n fibStream = makeFibStream(10); fibStream.forEachOrdered(System.out::println);}public static Stream makeFibStream() { return(Stream.generate(new FibonacciSupplier()));}public static Stream makeFibStream(int numFibs) { return(makeFibStream().limit(numFibs));}public static List makeFibList(int numFibs) { return(makeFibStream(numFibs) .collect(Collectors.toList()));}public static class FibonacciSupplier implements Supplier { private long previous = 0; private long current = 1; @Override public Long get() { long next = current + previous; previous = current; current = next; return(previous); }}Hier gibt es allerdings einige Nachteile, oder besser gesagt Dinge, die auf jeden Fall berücksichtigt werden müssen.Wenn eine Supplier-Instanz erzeugt wird, muss sichergestellt sein, dass diese nicht zur Erzeugung von mehr als einem Stream verwendet wird. Wenn dem so ist, kann kann es zu Nebenläufigkeitsproblemen ko...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang