Categorías
Java 8 Stream

Recopilar ejemplos de resultados de transmisión

En lugar de reducir un flujo a un valor, también podemos recopilar los resultados. Podemos recopilar resultados en una matriz, un conjunto / lista o un mapa utilizando el método Stream.collect ().

1. Recopile los resultados de la transmisión en una matriz

List<String> list = new ArrayList<String>();
list.add("java");
list.add("php");
list.add("python");
Stream<String> wordStream = list.stream();
 
Stream<Integer> lengthStream = wordStream.map(s -> s.length());
Integer[] lenArr = lengthStream.toArray(Integer[]::new);
System.out.println(Arrays.toString(lenArr));

* Tenga en cuenta que toArray () es una operación de terminal. Después de que se invoca toArray (), la secuencia ya no está disponible para su uso.

2. Recopile los resultados de la transmisión en una lista / conjunto

Recopile resultados para enumerarlos usando Collectors.toList().

List<Integer> intList= lengthStream.collect(Collectors.toList());

Recopile resultados para enumerarlos usando Collectors.toSet().

Set<Integer> intSet= lengthStream.collect(Collectors.toSet());

También podemos especificar el tipo de conjunto a usar así:

TreeSet<Integer> intSet= lengthStream.collect(Collectors.toCollection(TreeSet::new));

3. Recopile los resultados de la transmisión en el mapa

List<String> list = new ArrayList<String>();
list.add("java");
list.add("php");
list.add("python");
Stream<String> wordStream = list.stream();
 
// to map
Map<String, Integer> map = wordStream.collect(Collectors.toMap(Function.identity(), s->s.length()));
System.out.println(map);
  Reducir ejemplos de transmisión

Producción:

{python=6, java=4, php=3}

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *