Join de JavaScript en Java

En esta ocasión les mostraré como realizar de 2 maneras diferentes la funcionalidad del join de JavaScript en Java.

Este artículo está pensado para JavaScripteros, pero seguro que a algún Javero también le podría sorprender. Y sí… ya sé lo que piensan…

meme cuantas veces te tengo que decir que Java no es JavaScript

Pero a mi nadie me va a decir que no puedo hacer lo mismo de Javascript en Java 😉

Definición del problema

Para probar la equivalencia, las soluciones que propongo deberán de poder servir para resolver el siguiente problema:

Dadas dos cadenas, concatenarlas y obtener una cadena sin duplicados ordenada alfabéticamente.

Javascript join

En Javascript la función join pertenece al prototipo de String y se encarga de unir un arreglo en una cadena con los delimitadores intermedios que se especifiquen.

La implementación del código de prueba en javascript sería algo como:

function longest(s1, s2) {
  return Array.from(new Set((s1 s2).split("").sort())).join("");
}

Implementación del join de JavaScript en Java

Si usas Java 8 hallarás muy útil la función join de la clase String, así como el uso de los streams (del API de stream por supuesto).

import java.util.Arrays;
import java.util.stream.Collectors;

/**
 * Created by Javatlacati on 21/10/2016.
 */
public class TwoToOne {
    public static String longest(String s1, String s2) {
        return String.join("",Arrays.stream((s1   s2).split("")).distinct().parallel().sorted().collect(Collectors.toList()));
    }
}

Otra forma es usar la función join de la clase StringUtils

import com.sun.deploy.util.StringUtils;

import java.util.Arrays;
import java.util.stream.Collectors;

/**
 * Created by Javatlacati on 21/10/2016.
 */
public class TwoToOne {
    public static String longest(String s1, String s2) {
        return StringUtils.join(Arrays.stream((s1   s2).split("")).distinct().parallel().sorted().collect(Collectors.toList()), "");
    }
}

El inconveniente de esta implementación es que usa una de las clases internas de sun, que ellos crearon experimentalmente para realizar algunas tareas, y en un futuro podría desaparecer.

Entre algunas de las ventajas de las implementaciones del join de JavaScript que realizamos en Java podemos notar que acepta tanto arreglos como colecciones (del API de colecciones por supuesto).


  • Cursos de Código Facilito

    Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual de cursos en idioma exclusivamente español que inició como un canal de YouTube. Opinión de la plataforma En mi opinión la plataforma aún es incipiente y los cursos necesitan más trabajo, ya que es muy común hallarse con clases de…


  • Cursos de LinkedIn Learning

    Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma virtual de cursos propiedad de Microsoft. Hallarás mucho material en inglés, pues prácticamente todos los cursos vienen con subtítulos en castellano y en la parte técnica son muy buenos debido a la adquisición de Lynda.com. En mi opinión la plataforma…


  • Mockito: Snippets de código

    Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad. Claro que también los puedes usar para tu desarrollo en el día a día. Mock básico Si te llegan a mostrar algo como esto es mejor que sospeches, mockito se usa principalmente para pruebas de integración. Si llegas a ver…


javapro.org