Ok, soy nuevo en estos HashMaps pero tengo alguna idea sobre LinkedLists y HashMaps. Sería grandioso si pudiera darme alguna explicación simple con respecto a LinkedHashMap y como en el título ¿significa esto que estamos definiendo explícitamente que es de algún tipo?¿Qué es LinkedHashMap <k, v>?
Respuesta
Un LinkedHashMap es una combinación de tabla hash y la lista enlazada. Tiene un orden de iteración predecible de (a la lista enlazada ), sin embargo, la velocidad de recuperación es la de un HashMap. El orden de la iteración está determinado por el orden de inserción , por lo que obtendrá las claves/valores en el orden en que se agregaron a este Mapa. Tiene que ser un poco cuidadoso aquí, ya que volver a insertar una clave no cambia el orden original .
k significa Key yv for Value.
/*
Simple Java LinkedHashMap example
This simple Java Example shows how to use Java LinkedHashMap.
It also describes how to add something to LinkedHashMap and how to
retrieve the value added from LinkedHashMap.
*/
import java.util.LinkedHashMap;
public class JavaLinkedHashMapExample {
public static void main(String[] args) {
//create object of LinkedHashMap
LinkedHashMap lHashMap = new LinkedHashMap();
/*
Add key value pair to LinkedHashMap using
Object put(Object key, Object value) method of Java LinkedHashMap class,
where key and value both are objects
put method returns Object which is either the value previously tied
to the key or null if no value mapped to the key.
*/
lHashMap.put("One", new Integer(1));
lHashMap.put("Two", new Integer(2));
/*
Please note that put method accepts Objects. Java Primitive values CAN NOT
be added directly to LinkedHashMap. It must be converted to corrosponding
wrapper class first.
*/
//retrieve value using Object get(Object key) method of Java LinkedHashMap class
Object obj = lHashMap.get("One");
System.out.println(obj);
/*
Please note that the return type of get method is an Object. The value must
be casted to the original class.
*/
}
}
/*
Output of the program would be
1
*/
La mayor diferencia es que LinkedHashMap está ordenado. Si usa un iterador, las claves y los valores estarán en el mismo orden en que se agregaron al mapa. HashMap no tiene garantía del orden en que se devuelven.
Esto se llama genéricos. k
y v
se deben reemplazar por el tipo real que desea almacenar. Para crear un HashMap que mapea enteros en cadenas que iba a escribir:
LinkedHashMap<Integer,String>
leer sobre Generics in Java en la Wikipedia.
Las claves LinkedHashMap son similares a ArrayLists o arrays en la forma en que se almacenan en el orden en que se insertan. Los HashMaps normales se ordenan por código hash.
k = clave v = valor Pueden ser de cualquier tipo.
Es un híbrido de dos estructuras de datos, un LinkedList
, donde el orden de inserción se conserva mediante la adición de elementos al final de una lista de nodos que tienen acceso a sus vecinos inmediatos, y una HashMap
, o una Map
que utiliza una array del cubo Lists
, donde un módulo de división restante de la clave hashcode()
determina el depósito inicial para consultar el método equals()
de las claves que se encuentran en la lista de contenidos de ese depósito.
La ventaja es que se puede caminar los elementos existentes en una HashMap
en orden de inserción, debido a la naturaleza LinkedList
, y se puede saltar rápidamente a la cubeta correcta en una búsqueda de claves (ahorra un montón de tiempo para un gran colección) si tiene la clave del elemento.
- 1. LinkedHashMap firma
- 2. LinkedHashMap <String, Object> .clone();
- 3. C#: ¿Cómo puede Dictionary <K,V> implementar ICollection <KeyValuePair <K,V>> sin tener Add (KeyValuePair <K,V>)?
- 4. Java Map <K,V>: ¿Por qué get (object) not get (K)?
- 5. La comprensión HashMap <K,V>
- 6. Empty ILookup <K, T>
- 7. Ordenando LinkedHashMap
- 8. Cómo crear un bucle a través de LinkedHashMap <String, ArrayList <String>>?
- 9. Shrink LinkedHashMap en Java
- 10. LinkedHashMap en .NET
- 11. LinkedHashMap ¿LIFO o FIFO?
- 12. Implementando un LinkedHashMap concurrente
- 13. ¿Por qué es {} <función() {}?
- 14. ¿Qué es <? = En C++?
- 15. Convertir un POJO a un mapa <K,V>
- 16. ¿Cómo obtener submapas de LinkedHashMap por elemento índice?
- 17. ¿Por qué LinkedHashMap no proporciona acceso por índice?
- 18. errores extensión de tipo de diccionario <'K, 'V>
- 19. ¿En qué se diferencia la implementación de LinkedHashMap de HashMap?
- 20. Diccionario más eficiente <K,V> .ToString() con formato?
- 21. Binary Search on Keys of SortedList <K, V>
- 22. C# args de longitud variable, que es mejor y por qué: __arglist, params array o Dictionary <T,K>?
- 23. Volcar Java HashMap <K,V> a XML y
- 24. Equivalente para LinkedHashMap en Python
- 25. ¿Es seguro un hilo de diccionario <K,V> para lecturas simulaneas y adiciones?
- 26. Es "K & R C" todavía aplicable
- 27. ¿Qué es <span></span> elemento?
- 28. ¿Qué es impresión << EOF; y como esta funcionando?
- 29. ¿Qué idioma es eso? (<%REPEAT...%>, <opcional% ...%>)
- 30. Cómo crear un tipo que implementan IDictionary <'K, 'V> y IEnumerable <'V>
gracias por la explicación detallada – Johnydep
@Johnydep de nada! – evilone
Esto es exactamente lo que necesito. ¡Gracias por una respuesta detallada! :) – Dino55