Un mapa es un objeto que asigna claves a valores o es una colección de pares de atributos y valores. La lista es una colección ordenada de objetos y la Lista puede contener valores duplicados. El Mapa tiene dos valores (una clave y un valor), mientras que una Lista solo tiene un valor (un elemento). Entonces podemos generar dos listas como se enumeran:
- Lista de valores y
- Lista de claves de un Mapa.
Supongamos que » mapa» es la instancia de Mapa, de ahora en adelante, como de costumbre, todos sabemos que contiene pares de conjuntos y valores. por lo que se definen de la siguiente manera:
- map.values() devolverá una colección de los valores del mapa.
- map.keySet() devolverá un conjunto de claves del mapa.
Métodos:
- Pasar conjuntos de claves dentro del parámetro del constructor ArrayList
- Pasar la colección de valores de mapa generados por el método map.values() al parámetro del constructor ArrayList
- Usando Streams API (solo aplicable después de JDK 8 y en adelante)
Discutamos cada uno de ellos
Métodos 1: pasar conjuntos de claves dentro del parámetro del constructor ArrayList
Procedimiento: podemos convertir claves de mapa en lista de claves sin pasar por el conjunto de claves de mapa generadas por el método map.keySet() al parámetro del constructor ArrayList como se muestra a continuación
map.values(); // Now here e will pass sets of keys of our map, so it becomes map.values(map.keySet()); // Now we just need to store it into List, so creating object List ListofKeys = new ArrayList(map.keySet()); // Now we are done with conversion.
Sintaxis: De ahora en adelante es como sigue:
List ListofKeys = new ArrayList(map.keySet());
Método 2: List ListofKeys = new ArrayList(map.keySet());
Podemos convertir claves de mapa en una lista de valores pasando una colección de valores de mapa generados por el método map.values() al parámetro del constructor ArrayList.
Sintaxis: En adelante es como sigue:
List Listofvalues = new ArrayList(map.values());
Ejemplo
Java
// Java Program to Convert Map to List // Importing required classes import java.util.*; class GFG { // Method 1 public static void main(String[] args) { // Creating HashMap HashMap<String, Integer> hs = new HashMap<>(); // Adding elements to hashMap hs.put("Geeks", 1); hs.put("for", 2); hs.put("Geeks", 3); hs.put("Computer", 4); hs.put("Science", 5); hs.put("Portal", 6); // Calling method MapValuesToList obj = new MapValuesToList(hs); // Storing into List List<Integer> mapvaltolist = obj.mapvaltolist(hs); // Printing via for loops for (Integer integerList : mapvaltolist) { // Printing our ArrayList System.out.println(integerList); } } // Method 2 // To convert Map to List public List<String> mapvaltolist(Map<String, Integer> map) { // Using Collection Collection<Integer> val = map.values(); // Creating an ArrayList ArrayList<Integer> al = new ArrayList<>(values); return al; } }
Producción:
1 2 3 4 5 6
Método 3: Uso de la API de flujos
El método stream() devuelve un flujo de claves del conjunto de claves de mapa devueltas por Map.keySet(). El método collect() de la clase Stream recopila el flujo de claves en una List.The Collectors.toCollection(ArrayList::new) pasado al método collect() para recopilar como nueva ArrayList. También se puede usar Stream API para convertir claves y valores de mapas en listas respectivas. la sintaxis se proporciona a continuación de la siguiente manera:
List ListofKeys = map.keyset().stream().collect(Collectors.toCollection(ArrayList::new));
List Listofvalues= map.values().stream().collect(Collectors.toCollection(ArrayList::new));
Nota: Puede recopilar elementos de Stream en una ArrayList, LinkedList o cualquier otra implementación de Lista.
Implementación:
Dado RollNo y Student Name de N estudiantes como entrada. Primero, creamos un mapa donde Rollno es clave porque Rollno es único y Name as Value for Map, luego convertimos este mapa en una lista de valores y claves respectivamente. Donde la lista de claves generada contiene RollNo de estudiantes y la lista de Valores contiene Nombre de Estudiantes.
Ejemplo
Java
// Java program to Convert Map to List // Importing required classes import java.util.*; // Importing stream sub-package import java.util.stream.*; // Main class // MapToList class GFG { // Main driver method public static void main(String[] args) { // Scanner class to take input of key-value pairs Scanner sc = new Scanner(System.in); // Creating a Hashmap which maps rollno with student // name Map<String, String> map = new HashMap<String, String>(); // Command for better usability System.out.println("Enter No of Students"); // Taking input to Hashmap // via iterating using for loop int noOfStudents = Integer.parseInt(sc.nextLine()); for (int i = 0; i < noOfStudents; i++) { String input = sc.nextLine(); String[] studentdata = input.split(" "); String rollno = studentdata[0]; String name = studentdata[1]; // Simply inserting received pairs to Map map.put(rollno, name); } // Now first create list of keys and values List<String> ListofKeys = null; List<String> ListofValues = null; // Now converting hashMap to List of keys and values ListofKeys = map.keySet().stream().collect( Collectors.toCollection(ArrayList::new)); ListofValues = map.values().stream().collect( Collectors.toCollection(ArrayList::new)); // lastly printing List of rollno and name of // students System.out.println("List of RollNo of Students"); System.out.println(ListofKeys.toString()); System.out.println("List of Name of Students"); System.out.println(ListofValues.toString()); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA