Explicação detalhada de Java Hashmap, Treemap e LinkedHashmap
Durante a entrevista nesta manhã, perguntei sobre o Java e o mapa coisas relacionadas. Lembrei -me do conteúdo relacionado ao Hashmap e ao TreeMap erroneamente. Quando voltei, tentei rapidamente algumas demos para entender.
mapa do pacote; importar java.util.*; classe pública 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"); Iterator iterator = map.keyset (). Iterator (); while (iterator.hasNext ()) {key itens = iterator.Next (); System.out.println ("map.get (key) é:" + map.get (chave)); } Tabable hashtable = 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 ()) {key keard = iterator_1.Next (); System.out.println ("tab.get (key) é:" + tab.get (chave)); } 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 ()) {key iteRator_2.next (); System.out.println ("tmp.get (key) é:" + 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); para (String temp: LinkedHashmap.keyset ()) {System.out.println (temp); }}} O mapa é diferente da lista. A camada subjacente usa a forma de pares de valor-chave para armazenar dados. Map.Entry é um sub-entrada interno. Diferentes implementações do MAP têm esquemas de índice diferentes para pares de valor-chave.
O próprio hashmap usa a função de hash para indexar valores -chave. Não podemos determinar a ordem dos últimos valores -chave.
No entanto, existe um fenômeno interessante de que, ao usar o número inteiro como o par de valores-chave, quando os dígitos são de 1 dígito, o valor da chave é organizado de pequeno a grande e quando os dígitos aumentam para dois dígitos, pode haver problemas.
Há uma árvore equilibrada dentro do Treemap para armazenar índices de valor-chave. TreeMap classifica os valores -chave de acordo com a função de comparação. Especulo que pode haver um avltree dentro.
O LinkedHashmap possui um recurso de que os pares de valor-chave são classificados na ordem de inserção. Se houver inserções repetidas, elas serão registradas na ordem de primeira inserção. Uma das palavras na internet é que existem dois hashs dentro da estrutura.
Um resolve o problema do pedido, o outro resolve o problema de armazenamento, a correção deve ser confirmada
Hashmap e Treemap são as duas estruturas de mapa mais usadas. De um modo geral, o hashmap é relativamente eficiente e o mais comum. Somente se precisarmos ser encomendados com os valores -chave, usaremos o TREEMAP.
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!