Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java 9 Stream API-verbeteringen: takeWhile, dropWhile, iterate, ofNullable

Streams werden in Java geïntroduceerd om ontwikkelaars te helpen aggregate operaties uit te voeren op een reeks objecten. Met Java 9 zijn er extra methodes toegevoegd om streams krachtiger te maken.

takeWhile(Predicate Interface)

Syntaxis

default Stream<T> takeWhile(Predicate<? super T> predicate)

takeWhile neemt alle waarden zolang de predicate true retourneert. Bij een geordende stream levert het een stream op bestaande uit het langste prefix van elementen die voldoen aan de predicate.

Voorbeeld

import java.util.stream.Stream;
public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").takeWhile(s -> !s.isEmpty()).forEach(System.out::print);
    }
}

Uitvoer

abc

takeWhile neemt a, b, c, stopt bij de lege string.

dropWhile(Predicate Interface)

Syntaxis

default Stream<T> dropWhile(Predicate<? super T> predicate)

dropWhile gooit alle beginwaarden weg zolang de predicate true is. Bij een geordende stream levert het de overgebleven elementen na het weglaten van het langste prefix dat voldoet aan de predicate.

Voorbeeld

import java.util.stream.Stream;
public class Tester {
    public static void main(String[] args) {
        Stream.of("a","b","c","","e","f").dropWhile(s -> !s.isEmpty()).forEach(System.out::print);
        System.out.println();
        Stream.of("a","b","c","","e","","f").dropWhile(s -> !s.isEmpty()).forEach(System.out::print);
    }
}

Uitvoer

ef
ef

dropWhile dropt a, b, c, neemt daarna alle waarden.

iterate

Syntaxis

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

iterate heeft nu een hasNext-predicate als parameter die de lus stopt zodra de predicate false retourneert.

Voorbeeld

import java.util.stream.IntStream;
public class Tester {
    public static void main(String[] args) {
        IntStream.iterate(3, x -> x < 10, x -> x + 3).forEach(System.out::println);
    }
}

Uitvoer

3
6
9

ofNullable

Syntaxis

static <T> Stream<T> ofNullable(T t)

ofNullable voorkomt NullPointerException en null-checks voor streams. Retourneert een sequentiële stream met één element als niet-null, anders een lege stream.

Voorbeeld

import java.util.stream.Stream;
public class Tester {
    public static void main(String[] args) {
        long count = Stream.ofNullable(100).count();
        System.out.println(count); // 1
        count = Stream.ofNullable(null).count();
        System.out.println(count); // 0
    }
}

Uitvoer

1
0

Java

  1. Java-operators beheersen: typen, syntax en praktische voorbeelden
  2. Java-commentaar: typen, gebruik en best practices
  3. Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
  4. Java Strings beheersen: aanmaken, methodes en best practices
  5. Java interfaces meesteren: concepten, implementatie en best practices
  6. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  7. Java Try-with-resources meesteren: automatische resource management uitgelegd
  8. Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
  9. Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
  10. Java 9 (JDK 9) – Belangrijkste kenmerken & voordelen
  11. Java 9 Process API: Belangrijkste verbeteringen & nieuwe features