Flujos de Java 8 | Método Collectors.joining() con ejemplos

El método join() de Collectors Class, en Java, se usa para unir varios elementos de una array de caracteres o strings en un solo objeto de string. Este método utiliza la secuencia para hacerlo. Hay varias sobrecargas de métodos de unión presentes en la clase Collector. La jerarquía de clases es la siguiente: 

java.lang.Object
  ↳ java.util.stream.Collectors

unión()

java.util.stream.Collectors.joining() es el método de unión más simple que no toma ningún parámetro. Devuelve un Collector que une o concatena los flujos de entrada en String en el orden de aparición.

Sintaxis:

public static Collector<CharSequence, ?, String> joining()

Ilustración: Uso del método join()

Programa 1: Uso de join() con una array de caracteres

En el siguiente programa, se crea una array de caracteres en ‘ch’. Luego, esta array se alimenta para convertirla en Stream usando Stream.of(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la array de caracteres se une a una string mediante el método Collectors.joining() . Se almacena en la variable ‘chString’.

Ejemplo 

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating a custom character array
        char[] ch = { 'G', 'e', 'e', 'k', 's', 'f', 'o',
                      'r', 'G', 'e', 'e', 'k', 's' };
 
        // Converting character array into string
        // using joining() method of Collectors class
        String chString
            = Stream.of(ch)
                  .map(arr -> new String(arr))
                  .collect(Collectors.joining());
 
        // Printing concatenated string
        System.out.println(chString);
    }
}
Producción

GeeksforGeeks

Programa 2: Uso de join() con una lista de caracteres

En el siguiente programa, se crea una lista de caracteres en ‘ch’. Luego, esta lista se alimenta para convertirla en Stream usando el método ch.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string mediante el método Collectors.joining(). Se almacena en la variable ‘chString’. 

Ejemplo

Java

// Java Program to demonstrate Working of joining() Method
// of Collectors Class
 
// Importing required classes
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating a character list
        List<Character> ch = Arrays.asList(
            'G', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'G',
            'e', 'e', 'k', 's');
 
        // Converting character list into string
        // using joining() method of Collectors class
        String chString
            = ch.stream()
                  .map(String::valueOf)
                  .collect(Collectors.joining());
 
        // Printing the concatenated string
        System.out.println(chString);
    }
}
Producción

GeeksforGeeks

Programa 3: Uso de join() con n lista de strings

En el siguiente programa, se crea una lista de strings en ‘str’. Luego, esta lista se alimenta para convertirla en Stream usando el método str.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string mediante el método Collectors.joining(). Se almacena en la variable ‘chString’. 

Ejemplo

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
public class GFG {
    public static void main(String[] args)
    {
        // Create a string list
        List& lt;
        String& gt; str = Arrays.asList("Geeks", "for", "Geeks");
 
        // Convert the string list into String
        // using Collectors.joining() method
        String chString
            = str.stream().collect(Collectors.joining());
 
        // Print the concatenated String
        System.out.println(chString);
    }
}

Producción:

GeeksforGeeks

unión (delimitador)

java.util.stream.Collectors.joining(CharSequence delimiter) es un método de sobrecarga de join() que toma el delimitador como parámetro, del tipo CharSequence. Un delimitador es un símbolo o una CharSequence que se utiliza para separar palabras entre sí. Por ejemplo, en cada oración, el espacio ‘ ‘ se usa como delimitador predeterminado para las palabras que contiene. Devuelve un Collector que une o concatena los elementos de entrada en String en el orden de aparición, separados por el delimitador. 

Sintaxis:

public static Collector<CharSequence, ?, String> joining(CharSequence delimiter)

A continuación se muestra la ilustración de cómo utilizar el método de unión (delimitador): 

Programa 1: Uso de unión (delimitador) con una lista de caracteres: En el siguiente programa, se crea una lista de caracteres en ‘ch’. Luego, esta lista se alimenta para convertirla en Stream usando el método ch.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string mediante el método Collectors.joining() con “,” como delimitador. Se almacena en la variable ‘chString’. 

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List& lt;
        Character& gt;
        ch = Arrays.asList('G', 'e', 'e', 'k', 's', 'f',
                           'o', 'r', 'G', 'e', 'e', 'k',
                           's');
 
        // Convert the character list into String
        // using Collectors.joining() method
        // with, as the delimiter
        String chString = ch.stream()
                              .map(String::valueOf)
                              .collect(Collectors.joining(
                                  ", "));
 
        // Print the concatenated String
        System.out.println(chString);
    }
}

Producción:

G, e, e, k, s, f, o, r, G, e, e, k, s

Programa 2: Uso de unión (delimitador) con una lista de strings: 

En el siguiente programa, se crea una lista de strings en ‘str’. Luego, esta lista se alimenta para convertirla en Stream usando el método str.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string mediante el método Collectors.joining() con “,” como delimitador. Se almacena en la variable ‘chString’. 

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
public class GFG {
    public static void main(String[] args)
    {
        // Create a string list
        List& lt;
        String& gt; str = Arrays.asList("Geeks", "for", "Geeks");
 
        // Convert the string list into String
        // using Collectors.joining() method
        String chString = str.stream().collect(
            Collectors.joining(", "));
 
        // Print the concatenated String
        System.out.println(chString);
    }
}

Producción:

Geeks, for, Geeks

unión (delimitador, prefijo, sufijo)

java.util.stream.Collectors.joining(CharSequence delimitador, CharSequence prefijo, CharSequence sufijo) es un método de sobrecarga de join() que toma delimitador, prefijo y sufijo como parámetro, del tipo CharSequence. Un delimitador es un símbolo o una CharSequence que se utiliza para separar palabras entre sí. Un prefijo es un símbolo o una secuencia de caracteres que se une al comienzo del primer elemento de la string. Luego, el sufijo también es un parámetro de CharSequence, pero se une después del último elemento de la string. es decir, al final. Por ejemplo, en cada {Geeks, for, Geeks}, el espacio ‘ ‘ se usa como delimitador predeterminado para las palabras que contiene. El ‘{‘ es el prefijo y ‘}’ es el sufijo. Devuelve un Collector que une o concatena los elementos de entrada en String en el orden de aparición, separados por el delimitador. 

Sintaxis:

public static Collector<CharSequence, ?, String> joining(CharSequence delimiter. 
                                                       CharSequence prefix,
                                                       CharSequence suffix))

A continuación se muestra la ilustración de cómo usar el método de unión (delimitador, prefijo, sufijo): 

Programa 1: Uso de join() con una lista de caracteres: En el siguiente programa, se crea una lista de caracteres en ‘ch’. Luego, esta lista se alimenta para convertirla en Stream usando el método ch.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string utilizando el método Collectors.joining() con “,” como delimitador, “[” como prefijo y “]” como sufijo. Se almacena en la variable ‘chString’. 

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
public class GFG {
    public static void main(String[] args)
    {
        // Create a character list
        List& lt;
        Character& gt;
        ch = Arrays.asList('G', 'e', 'e', 'k', 's', 'f',
                           'o', 'r', 'G', 'e', 'e', 'k',
                           's');
 
        // Convert the character list into String
        // using Collectors.joining() method
        // with, as the delimiter
        String chString
            = ch.stream()
                  .map(String::valueOf)
                  .collect(Collectors.joining(
                      ", ", "
                          [", "] & quot;));
 
        // Print the concatenated String
        System.out.println(chString);
    }
}

Producción:

[G, e, e, k, s, f, o, r, G, e, e, k, s]

Programa 2: Uso de join() con una lista de strings: en el siguiente programa, se crea una lista de strings en ‘str’. Luego, esta lista se alimenta para convertirla en Stream usando el método str.stream(). Luego, el flujo resultante se mapea para una serie secuencial usando map(). Por último, el flujo secuencial que contiene la lista de caracteres se une a una string utilizando el método Collectors.joining() con “,” como delimitador, “{” como prefijo y “}” como sufijo. Se almacena en la variable ‘chString’. 

Java

// Java Program to demonstrate the working
// of the Collectors.joining() method
 
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
 
public class GFG {
    public static void main(String[] args)
    {
        // Create a string list
        List& lt;
        String& gt; str = Arrays.asList("Geeks", "for", "Geeks");
 
        // Convert the string list into String
        // using Collectors.joining() method
        String chString = str.stream().collect(
            Collectors.joining(", ", " {
                "
                , "
            } & quot;));
 
        // Print the concatenated String
        System.out.println(chString);
    }
}

Producción:

{Geeks, for, Geeks}

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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