Java >> Tutoriel Java >  >> Java

Comment imprimer des éléments d'un Stream en Java 8 ?

Imprimer les éléments d'un flux

En Java, il existe trois façons différentes d'imprimer les éléments d'un flux en Java 8 . Le nom de ces 3 voies différentes est donné ci-dessous :

  1. méthode forEach() de Stream
  2. println() avec la méthode collect() de Stream
  3. méthode de la méthode peek() de Stream

Nous verrons les trois manières d'imprimer les éléments d'un flux en java 8 un par un...

1) Méthode forEach() de Stream

  • Cette méthode est disponible dans le package java.util.stream.
  • Ce n'est pas la méthode statique donc cette méthode sera appelée avec l'objet.
  • Le type de retour de cette méthode est void donc elle ne retourne rien.
  • Cette méthode agit comme chaque élément du flux.

La syntaxe de cette méthode est donnée ci-dessous,

    void forEach(Consumer <? super T > consumer);

Ici, Consumer est une interface et T est le type d'élément.

Exemple :expression non lambda

import java.util.stream.*;

public class PrintStreamElementByForeachMethod {
    public static void main(String[] args) {
        // Here of() method of Stream interface is used to get the stream
        Stream stm = Stream.of("Java", "is", "a", "programming", "language");

        // we are printing the stream by using forEach() method
        stm.forEach(stm1 -> System.out.println(stm1));
    }
}

Sortie

E:\Programs>javac PrintStreamElementByForeachMethod.java
E:\Programs>java PrintStreamElementByForeachMethod
Java
is
a
programming
language

Exemple :expression lambda abrégée

import java.util.stream.*;

public class PrintStreamElementByForeachMethod {
    public static void main(String[] args) {
        // Here of() method of Stream interface is used to get the stream
        Stream stm = Stream.of("Java", "is", "a", "programming", "language");

        // we are printing the stream by using forEach() method
        stm.forEach(System.out::println);
    }
}

Sortie

E:\Programs>javac PrintStreamElementByForeachMethod.java

E:\Programs>java PrintStreamElementByForeachMethod
Java
is
a
programming
language

2) println() avec la méthode collect() de Stream

  • Cette méthode est disponible dans le package java.util.stream.
  • Cette méthode n'est pas statique donc elle sera accessible avec les objets de l'interface Stream.
  • Cette méthode collecte les éléments de flux en tant qu'objet Collector, puis imprime les éléments à l'aide de la méthode println().

La syntaxe de println() avec la méthode collect(),

    System.out.println(Stream_object.collect(Collectors.toList()));

Exemple :

import java.util.stream.*;

public class PrintStreamElementByForeachMethod {
    public static void main(String[] args) {
        // Here of() method of Stream interface is used to get the stream
        Stream stm = Stream.of("Java", "is", "a", "programming", "language");

        // we are printing the stream by using forEach() method
        stm.forEach(System.out::println);
    }
}

Sortie

E:\Programs>javac PrintStreamElementByForeachMethod.java

E:\Programs>java PrintStreamElementByForeachMethod
[Java, is, a, programming, language]

3) méthode peek() de Stream

  • Cette méthode est disponible dans le package java.util.stream.
  • Cette méthode n'est pas statique donc cette méthode sera appelée avec l'objet Stream.

La syntaxe de cette méthode est donnée ci-dessous :

    Stream peek(Consumer <? super T> consumer);

Cette méthode renvoie un flux et il se compose de tous les éléments du flux actuel et il exécute l'opération ou l'action donnée sur chaque élément.

Dans cette méthode, si un flux est déjà consommé, alors le même flux que nous voulons consommer à nouveau, dans ce cas, nous n'obtiendrons aucune erreur ou exception et il est valide.

Exemple :

import java.util.stream.*;

public class PrintStreamElementByPeekMethod {
    public static void main(String[] args) {
        // Here of() method of Stream interface is used to get the stream
        Stream stm = Stream.of("Java", "is", "a", "programming", "language");

        //  we are printing the stream by using peek() method 
        //  and it provides the facility count() method to terminate 
        stm.peek(stm1 -> System.out.println(stm1)).count();
    }
}

Sortie

E:\Programs>javac PrintStreamElementByPeekMethod.java

E:\Programs>java PrintStreamElementByPeekMethod
Java
is
a
programming
language

Balise Java