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 - Verbeteringen in de Stream-API

In Java zijn streams geïntroduceerd om ontwikkelaars te helpen bij het uitvoeren van geaggregeerde bewerkingen op basis van een reeks objecten. Met Java 9 zijn er nog een paar methoden toegevoegd om streams beter te maken.

takeWhile (predicaatinterface)

Syntaxis

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

De methode takeWhile neemt alle waarden totdat het predikaat false retourneert. Het retourneert, in het geval van een geordende stream, een stream die bestaat uit het langste voorvoegsel van elementen uit deze stream die overeenkomen met het gegeven predikaat.

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

De methode takeWhile neemt alle a-, b- en c-waarden, en zodra de tekenreeks leeg is, wordt deze niet meer uitgevoerd.

abc

dropWhile (predicaatinterface)

Syntaxis

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

dropWhile methode gooi alle waarden aan het begin weg totdat het predikaat true retourneert. Het retourneert, in het geval van een geordende stream, een stream die bestaat uit de resterende elementen van deze stream na het verwijderen van het langste voorvoegsel van elementen die overeenkomen met het gegeven predikaat.

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

dropWhile methode laat a, b en c waarden vallen, en zodra de string leeg is, neemt het alle waarden.

ef
ef

herhalen

Syntaxis

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

iterate methode heeft nu hasNext predikaat als parameter die de lus stopt zodra hasNext predikaat 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

van Nullable

Syntaxis

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

ofNullable-methode is geïntroduceerd om NullPointerExceptions te voorkomen en om null-controles voor streams te voorkomen. Deze methode retourneert een sequentiële Stream met een enkel element, indien niet-null, anders retourneert 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);
  
      count = Stream.ofNullable(null).count();
      System.out.println(count);
   } 
}

Uitvoer

1
0

Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java voor elke lus
  4. Java-strings
  5. Java-interface
  6. Java anonieme klasse
  7. Java proberen-met-bronnen
  8. Java-annotaties
  9. Java-beweringen
  10. Java 9 - Overzicht
  11. Java 9 - Verbeteringen in de proces-API