A Saiba coleção Mapa? coleção mapa do que estão a atingir
1.HashMap HashTable LinkedHashMap TreeMap ConcurrentHashMap
diferença entre os dois .HashMap e HashTable
HashMap não é thread-safe
HashMap é uma subclasse do mapa de interface, a chave é mapeado para um valor-alvo, em que as teclas e os valores são objectos, e não pode conter chaves duplicadas, mas pode conter um valor duplicado. HashMap permite chave nulo e valor nulo, e hashtable não é permitido.
HashTable são thread-safe
Hashtable HashMap é uma implementação leve (não-thread-safe implementação), de terem concluído a interface do Mapa, a principal diferença é que HashMap permite nulo chave (key) (null), devido à não-thread-safe, Hashtable pode ser maior do que na eficiência.
. 1 .HashMap: + leque lista vinculada isoladamente com base na parte inferior (árvore de vermelho-preto), um cofre non-thread, capacidade padrão é 16, eo valor da chave para permitir vazio
array: Nó <K, V> [ ] mesa, cada elemento é Node uma
lista vinculada isoladamente: nó <K, V> próxima , quando a colisão de hash ocorrer, será acrescentada à lista, a lista quando o comprimento for superior a 8, em seguida, convertido em uma árvore rubro-negro
2. HashTable: com base na tabela hash subjacente, o fio de segurança é a capacidade padrão é 11, e não permite valores vazios-chave de
três .hashCode () e equals () métodos de usar a cena
hashCode () método para a obtenção de um número inteiro único dado objecto. Quando o objecto a ser armazenado em tal estrutura de dados uma de uma tabela hash, o número inteiro para determinar a posição da banheira. Por padrão, o objeto hashCode () retorna o endereço de memória do objeto onde a representação inteira.
equals () método é usado simplesmente para verificar a igualdade de dois objetos. A implementação padrão simplesmente dois objetos referências de objeto de inspeção, para verificar a sua igualdade.
hashCode (): Classe de objecto Método entre o pai de nível superior, tipo de retorno é um int, gerar uma matriz de acordo com uma determinada regra (campo de endereço de memória, um comprimento, etc.), os dados são armazenados valor de hash
igual (): Topo classe método objecto com base numa regra de comparação predeterminado, determina se o objecto é uniforme, a lógica subjacente geral:
endereço de memória 1 como um objecto para a determinação
2. Analisando e não-vazia tipo de classe julgamento
3. fortes transfectadas
4. objectos um campo combinado como deve escolher quatro .HashMap e TreeMap
HashMap: utilizando a estrutura da matriz lista subjacente + (árvore vermelho-negro), pode conseguir armazenagem rápida e recuperação, mas os dados são não ordenada, adaptado para ser inserido ou eliminado no elemento adquirida entre Mapa
TreeMap: estrutura de armazenamento é uma árvore binária equilibrada, incorporada forma como a árvore de vermelho-preto, padrões ordem natural, o agrupamento pode ser personalizado, mas precisa implementar interface de Comparador
pode ser fácil de implementar vários elementos dentro da classificação, mas a diferença no desempenho do que HashMap para agrupamento e personalizado ordenados de acordo com o natural
Cinco relação .Set e Mapa de
Set núcleo é armazenado não elementos duplicados, armazenar um único conjunto de objetos
definidos entre cada aplicação corresponde Mapa
HashMap, HashSet TreeMap TreeSet correspondente correspondente VI. Mapa Common agrupamento de acordo com a Regra acrescentou uso LinkedHashMap, de acordo com as regras personalizadas ordenação natural ou de ordenação pode ser usado TreeMap VII. como garantir Mapa thread-safe ambiente multi-threaded, não pode ser usado sob um pacote concorrente ConcurrentHashMap ou usar Collections.synchronizedList (new HashMap <K, V); ConcurrentHashMap segurança do segmento de garantia, eficiência do que HashTable, extracção bloqueio segmentos