LinkedHashMap es una clase predefinida en Java que es similar a HashMap, contiene clave y su valor respectivo a diferencia de HashMap, en LinkedHashMap se conserva el orden de inserción.
Necesitamos convertir ArrayList a LinkedHashMap. El valor clave de LinkedHashMap será un índice de ArrayList, básicamente, LinkedHashMap también será el mismo que ArrayList en términos de iteración y almacenamiento de datos.
Ejemplo :
Input ArrayList : { 5, 6, 7, 8, 4 } Output LinkedHashMap : Index | Value 1 | 5 2 | 6 3 | 7 4 | 8 5 | 4
Podemos convertir ArrayList a LinkedHashMap de 2 maneras:
- Usando el bucle for-each recorriendo toda la ArrayList y empujando cada elemento a LinkedHashMap.
- Uso de flujos en la versión java 8.
Enfoque: uso del ciclo for-each
- Tomando entrada en ArrayList.
- Usar un bucle For/While para insertar valor en LinkedHashMap (la clave de LinkedHashMap será un índice de ArrayList suponiendo que el primer índice sea 1)
Pseudocódigo:
while (i < l1.size()) { l.put(i + 1, l1.get(i)); i++; } Here, "l1" is ArrayList and "l" is LinkedHashMap.
Java
// Java program to convert ArrayList // to LinkedHashMap import java.util.*; import java.io.*; class GFG { public static void main(String[] args) { LinkedHashMap<Integer, Integer> l = new LinkedHashMap<>(); ArrayList<Integer> l1 = new ArrayList<>(); l1.add(5); l1.add(6); l1.add(7); l1.add(8); l1.add(4); int i = 0; // Adding one by one the elements // of ArrayList to LinkedHashMap while (i < l1.size()) { l.put(i + 1, l1.get(i)); i++; } System.out.println("Key | Value"); // .entrySet() method gives us the list of all // mappings reference of the map for (Map.Entry<Integer, Integer> it :l.entrySet()) { System.out.println(" " + it.getKey() + " | " + it.getValue()); } } }
Key | Value 1 | 5 2 | 6 3 | 7 4 | 8 5 | 4
Complejidad de tiempo: O(n)
Enfoque 2: uso de flujos
Si está utilizando Java 8 o superior, hay otro método, puede usar la secuencia para convertir la Lista en un objeto LinkedHashMap. que
Ejemplo:
Java
// Java program to convert ArrayList to LinkedHashMap import java.util.*; import java.io.*; import java.util.stream.Collectors; class integer { private Integer id; private String name; public integer(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return this.id; } // the .toString method of Object class // will be called by default when the object // of integer class will be made public String toString() { return "[" + this.id + "=>" + this.name + "]"; } } class GFG { public static void main(String[] args) { List<integer> List = new ArrayList<integer>(); List.add(new integer(1, "will")); List.add(new integer(2, "mike")); List.add(new integer(3, "luke")); List.add(new integer(4, "dustin")); System.out.println("ArrayList contains: " + List); // stream Api is used here to convert the // List to LinkedHashMap Map<Integer, integer> HashMap = List.stream().collect(Collectors.toMap( integer::getId, integer -> integer)); System.out.println("Map contains: " + HashMap); } }
ArrayList contains: [[1=>will], [2=>mike], [3=>luke], [4=>dustin]] Map contains: {1=[1=>will], 2=[2=>mike], 3=[3=>luke], 4=[4=>dustin]}
Publicación traducida automáticamente
Artículo escrito por kushwahp1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA