Comumente, recorremos à Map
uando desejamos uma coleção que estabelece uma relação entre chaves e valores, sendo que as chaves não podem estar duplicadas. Valores podem ser duplicados, mas chaves não.
Não será necessário abordar Hashtable
, pois compreender HashMap é suficiente. Analogamente a Vector e ArrayList, assim é com Hashtable e HashMap. A distinção entre eles reside na sincronização, sendo Hashtable adequado para ambientes multi-thread, embora com um consumo um pouco mais elevado de memória.
Ao iniciar esta série, mencionei que abordaria os mapeamentos HashMap (já explorado), LinkedHashMap
, e TreeMap
. No entanto, compreender HashMap torna as explicações subsequentes "redundantes". LinkedHashMap assemelha-se a LinkedHashSet
, e TreeMap é comparável a TreeSet
. A diferenciação reside na abordagem de geração de hash para armazenar dados, um aspecto que exploraremos ao estudar a próxima estrutura: HashSet
, posteriormente a esta, discutiremos LinkedHashSet e TreeSet.
Ao entender as variações na geração de hash em estruturas pertencentes às interfaces Set
e Map
, você poderá facilmente aplicar esses conceitos ao converter essas estruturas entre as interfaces Set e Map. Portanto, não vejo a nescessidade em explicar LinkedHashMap e TreeMap se veremos LinkedHashSet e TreeSet.