Convertir valores de mapa en una lista en Java

Sarwan Soomro 12 octubre 2023
  1. Definir un mapa para convertirlo en una lista en Java
  2. Use flujos Collector para convertir un mapa en una lista en Java
Convertir valores de mapa en una lista en Java

Este tutorial ejecutará tres programas para mostrar cómo convertir valores de mapas hash en una lista en Java.

Definir un mapa para convertirlo en una lista en Java

Antes de convertir valores de mapa en una lista, primero debemos tener un objeto de mapa y luego asignarle dos tipos de datos: un número entero (claves) y una cadena (valores) antes de agruparlo en una lista.

Las claves en este programa son los valores de RPM de los autos, mientras que las cadenas son sus colores.

Sintaxis:

Map<Integer, String> M2L = new HashMap<>();
M2L.put(5000, "Toyata Black");
M2L.put(6000, "Audi White");
M2L.put(8000, "BMW Red");
M2L.put(12000, "Buggati Silver");

Use flujos Collector para convertir un mapa en una lista en Java

Los Collector son clases públicas que amplían objetos en Java. También ayudan a recopilar elementos y resumir características en función de varios puntos de referencia que los usuarios predefinen.

Aquí, usamos el método keySet() para obtener claves creando una lista de arreglos a partir de un conjunto devuelto por un mapa.

Consulte el siguiente ejemplo, que convierte un mapa en una lista.

Ejemplo 1:

package maptolist;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MapToList {
  public static void main(String[] args) {
    Map<Integer, String> M2L = new HashMap<>();
    M2L.put(1, "New York");
    M2L.put(2, "Toronto");
    M2L.put(3, "Berlin");
    List<Integer> ID = M2L.keySet().stream().collect(Collectors.toList());
    ID.forEach(System.out::println);
    List<String> NAME = M2L.values().stream().collect(Collectors.toList());
    NAME.forEach(System.out::println);
  }
}

Producción :

1
2
3
New York
Toronto
Berlin

Considere el siguiente código en nuestro segundo ejemplo.

Sintaxis:

List<Integer> nums = maptolist.keySet().stream().collect(Collectors.toList());

Ejemplo 2:

package maptolist;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MaptoListExample2 {
  public static void main(String[] args) {
    Map<Integer, String> maptolist = new HashMap<>();
    maptolist.put(1, "This");
    maptolist.put(2, "Is");
    maptolist.put(3, "A");
    maptolist.put(4, "Demo");
    maptolist.put(5, "Example");
    List<Integer> nums = maptolist.keySet().stream().collect(Collectors.toList());
    System.out.println("Keys:");
    nums.forEach(System.out::println);
    // Conversion Strings
    List<String> chars = maptolist.values().stream().collect(Collectors.toList());
    System.out.println("Values:");
    chars.forEach(System.out::println);
  }
}

Producción :

Keys:
1
2
3
4
5
Values:
This
Is
A
Demo
Example

Ahora que hemos visto la lógica subyacente detrás de los mapas y las listas y hemos usado una combinación de recopiladores de objetos, a continuación se muestra un sólido programa de mapa en lista que funcionará en todas las situaciones.

La función keySet() devuelve una vista de conjunto de claves en el mapa para que las modificaciones del mapa también se apliquen al conjunto. Aquí, formamos un par dentro de una envoltura para obtener una lista de claves, como se muestra a continuación.

Sintaxis:

List<String> setkey = new ArrayList<String>(MAP2LIST.keySet());

Ejemplo 3:

package maptolist;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MapToListExample3 {
  public static void main(String[] args) {
    // Define Map
    Map<String, String> MAP2LIST = new HashMap<String, String>();
    // Values (key as values)
    MAP2LIST.put("1 + 1", "TWO");
    MAP2LIST.put("10 - 5", "FIVE");
    MAP2LIST.put("2.4 + 3.6", "SIX");
    // Define list
    List<String> setkey = new ArrayList<String>(MAP2LIST.keySet());
    // foreach function extends setkey and prints the output
    setkey.forEach(System.out::println);
    List<String> setvalue = new ArrayList<String>(MAP2LIST.values());
    setvalue.forEach(System.out::println);
  }
}

Producción :

10 - 5
1 + 1
2.4 + 3.6
FIVE
TWO
SIX
Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

Artículo relacionado - Java List

Artículo relacionado - Java Map