Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Cómo reducir la lista para mapear con la API funcional de Java

Quiero transformar una cadena de texto en un diccionario, que contiene todas las palabras únicas como clave y la traducción como valor.

Sé cómo transformar un String en un flujo que contiene palabras únicas (Split -> List -> stream() -> distinct()) , y tengo un servicio de traducción disponible, pero ¿cuál es la forma más conveniente de reducir el flujo en Map ? con el elemento original y su traducción en general?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede hacerlo directamente a través de recopilar:

 yourDistinctStringStream .collect(Collectors.toMap( Function.identity(), yourTranslatorService::translate );

Esto devuelve Map<String, String> donde la clave del mapa es la cadena original y el valor del mapa sería la traducción.

about 4 years ago · Santiago Trujillo Denunciar

0

Suponga que tiene una lista de cadenas "word1", "word2", "wordN" sin repeticiones:

Esto debería resolver el problema.

 List<String> list = Arrays.asList("word1", "word2", "workdN"); Map<String, String> collect = list.stream() .collect(Collectors.toMap(s -> s, s -> translationService(s)));

Esto devolverá, la orden de inserción no se mantiene.

{palabraN=traducciónN, palabra2=traducción2, palabra1=traducción1}

about 4 years ago · Santiago Trujillo Denunciar

0

Prueba el siguiente código:

 public static void main(String[] args) { String text = "hello world java stream stream"; Map<String, String> result = new HashSet<String>(Arrays.asList(text.split(" "))).stream().collect(Collectors.toMap(word -> word, word -> translate(word))); System.out.println(result); } private static String translate(String word) { return "T-" + word; }

Le dará salida:

{java=T-java, mundo=T-mundo, stream=T-stream, hola=T-hola}

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda