El método collectAndThen(Collector downstream, Function finisher) de los colectores de clase en Java , que adopta Collector para que podamos realizar una transformación de acabado adicional. Sintaxis:
public static <T, A, R, RR> Collector <T, A, RR> collectingAndThen(Collector <T, A, R> downstream, Function <R, RR> finisher) Where, T : The type of the input elements A :Intermediate accumulation type of the downstream collector R :Result type of the downstream collector RR :Result type of the resulting collector
Parámetros: este método acepta dos parámetros que se enumeran a continuación
- downstream: Es una instancia de un colector, es decir, podemos usar cualquier colector puede aquí.
- finisher: Es una instancia de una función que se va a aplicar al resultado final del colector aguas abajo.
Devoluciones: Devuelve un colector que realiza la acción del colector aguas abajo, seguido de un paso de acabado adicional, con la ayuda de la función de acabado. A continuación se muestran ejemplos para ilustrar el método coleccionandoYLuego() . Ejemplo 1: Para crear una lista inmutable
Java
// Write Java code here // Collectors collectingAndThen() method import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class GFG { public static void main(String[] args) { // Create an Immutable List List<String> lt = Stream .of("GEEKS", "For", "GEEKS") .collect(Collectors .collectingAndThen( Collectors.toList(), Collections::<String> unmodifiableList)); System.out.println(lt); } }
[GEEKS, For, GEEKS]
Ejemplo 2: Para crear un conjunto inmutable.
Java
// Write Java code here import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; public class GFG { public static void main(String[] args) { // Create an Immutable Set Set<String> st = Stream .of("GEEKS", "FOR", "GEEKS") .collect( Collectors .collectingAndThen(Collectors.toSet(), Collections::<String> unmodifiableSet)); System.out.println(st); } }
[GEEKS, FOR]
Ejemplo 2: Para crear un mapa inmutable
Java
import java.util.*; public class GFG { public static void main(String[] args) { // Create an Immutable Map Map<String, String> mp = Stream .of(new String[][] { { "1", "Geeks" }, { "2", "For" }, { "3", "Geeks" } }) .collect( Collectors .collectingAndThen( Collectors.toMap(p -> p[0], p -> p[1]), Collections::<String, String> unmodifiableMap)); System.out.println(mp); } }
{1=Geeks, 2=For, 3=Geeks}
Nota: este método se usa más comúnmente para crear colecciones inmutables.
Publicación traducida automáticamente
Artículo escrito por suman_ptnl y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA