Explicación detallada de Java Hashmap, Treemap y Linkedhashmap
Durante la entrevista de esta mañana, pregunté sobre Java y cosas relacionadas con el mapa. Recordé el contenido relacionado con HashMap y Treemap erróneamente. Cuando regresé, rápidamente probé algunas demostraciones para entender.
mapa de paquetes; import java.util.*; public class hashmaps {public static void main (String [] args) {map map = new HashMap (); map.put ("a", "aaa"); map.put ("b", "bbb"); map.put ("c", "ccc"); map.put ("d", "ddd"); Iterador iterator = map.KeySet (). Iterator (); while (iterator.hasnext ()) {objeto clave = iterator.next (); System.out.println ("map.get (key) es:" + map.get (key)); } Hashtable Tab = new Hashtable (); tab.put ("A", "AAA"); tab.put ("b", "bbb"); tab.put ("C", "CCC"); tab.put ("d", "ddd"); Iterator iterator_1 = tab.KeySet (). Iterator (); while (iterator_1.hasnext ()) {objeto clave = iterator_1.next (); System.out.println ("tab.get (key) es:" + tab.get (key)); } Treemap tmp = new Treemap (); tmp.put ("a", "aaa"); tmp.put ("b", "bbb"); tmp.put ("c", "ccc"); tmp.put ("d", "ddd"); tmp.put ("a", "aba"); Iterator iterator_2 = tmp.keySet (). Iterator (); while (iterator_2.hasnext ()) {objeto clave = iterator_2.next (); System.out.println ("tmp.get (clave) es:" + tmp.get (key)); } Linkedhashmap <String, Integer> LinkedHashMap = new LinkedHashMap <String, Integer> (); linkedhashmap.put ("dasdsa", 1); Linkedhashmap.put ("GDSF", 2); Linkedhashmap.put ("TEXVDFD", 3); linkedhashmap.put ("bdada", 4); Linkedhashmap.put ("GDSF", 3); for (string temp: linkedhashmap.keySet ()) {system.out.println (temp); }}} El mapa es diferente de la lista. La capa subyacente utiliza la forma de pares de valor clave para almacenar datos. MAP.Entry es una sub-entrada interna. Las diferentes implementaciones de MAP tienen diferentes esquemas de índice para pares de valor clave.
HashMap en sí utiliza la función hash para indexar valores clave. No podemos determinar el orden de los últimos valores clave.
Sin embargo, hay un fenómeno interesante de que al usar entero como el par de valores clave, cuando los dígitos son de 1 dígito, el valor clave se organiza de pequeño a grande, y cuando los dígitos se elevan a dos dígitos, puede haber problemas.
Hay un árbol equilibrado dentro de Treemap para almacenar índices de valor clave. Treemap clasifica los valores clave de acuerdo con la función de comparación. Especulo que puede haber un avltree en el interior.
Linkedhashmap tiene una característica que los pares de valor clave se clasifican en el orden de inserción. Si hay inserciones repetidas, se registran en el orden de primera inserción. Uno de los dichos en Internet es que hay dos hashs dentro de la estructura.
Uno resuelve el problema del pedido, el otro resuelve el problema de almacenamiento, la corrección debe confirmarse
Hashmap y Treemap son las dos estructuras de mapas más utilizadas. En términos generales, hashmap es relativamente eficiente y el más común. Solo si necesitamos que nos ordenen con valores clave, usaremos Treemap.
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!