Interface de coleta: a coleção é a interface de coleção mais básica, declarando métodos comuns adequados para coleções Java (incluindo apenas conjunto e lista). Defina e liste tanto a conexão quanto o mapa
Métodos de interface de coleta:
Boolean Add (Object O): Adicione uma referência a um objeto à coleção
void clear (): exclua todos os objetos da coleção, isto é, não é mais referências a esses objetos
boolean isEmpty (): determina se o conjunto está vazio
Boolean contém (objeto O): determina se uma referência a um objeto específico é mantida na coleção
ITERAR Iterator (): Retorna um objeto de iterador que pode ser usado para iterar os elementos em uma coleção
Remova booleana (objeto O): remove uma referência a um objeto da coleção
int size (): retorna o número de elementos na coleção
Objeto [] ToArray (): retorna uma matriz contendo todos os elementos da coleção
Sobre: Os métodos Iterator () e Toarray () são usados para todos os elementos de uma coleção. O primeiro retorna um objeto de iterador, e o último retorna uma matriz contendo todos os elementos da coleção.
A interface do iterador declara os seguintes métodos:
hasNext (): determina se os elementos da coleção foram atravessados. Se não, retorne verdadeiro
Próximo (): Retorne o próximo elemento
Remover (): Remova o elemento anterior retornado pelo método Next () da coleção.
SET (SET): SET é o tipo mais simples de coleção. Os objetos da coleção não são classificados de uma maneira específica e não há objetos duplicados. A interface definida implementa principalmente duas classes de implementação:
Hashset: a classe Hashset usa o algoritmo de hash para acessar objetos na coleção e a velocidade de acesso é relativamente rápida.
TreeSet: A classe Treeset implementa a interface do STORNEDSET, que pode classificar objetos na coleção.
Uso do conjunto: armazena referências a objetos, sem objetos duplicados
Set set = new hashset (); string s1 = new string ("hello"); string s2 = s1; string s3 = new string ("mundial"); set.add (s1); set.add (s2); set.add (s3); System.out.println (set.size ()); // O número de objetos na coleção de impressão é 2.
Como o método do Set's Add () determina se o objeto foi armazenado na coleção?
boolean isexists = false; iterator iterator = set.iterator (); while (it.hasNext ()) {string oldstr = it.next (); if (newstr.equals (Oldstr)) {isexists = true;}}Lista: A característica de uma lista é que seus elementos são armazenados de maneira linear e objetos duplicados podem ser armazenados na coleção.
As principais classes de implementação da interface da lista incluem:
ArrayList (): representa que o comprimento pode ser alterado para uma matriz. Os elementos podem ser acessados aleatoriamente, e a velocidade de inserção e exclusão de elementos no ArrayList () é lenta.
LinkedList (): usa uma estrutura de dados de lista vinculada na implementação. Inserção rápida e exclusão, acesso lento.
Para o acesso aleatório da lista, é apenas para recuperar aleatoriamente elementos localizados em um local específico. O método GET (INT INDEX) da lista é colocado de volta no objeto na coleção na posição do índice especificada pelo índice de parâmetros e o subscrito começa em "0". As duas maneiras mais básicas de recuperar todos os objetos em uma coleção:
1: para o método loop e get ():
for (int i = 0; i <list.size (); i ++) {System.out.println (list.get (i));}2: Use o iterador:
Iterator it = list.iterator (); while (it.hashnext) {System.out.println (it.next);}
Mapa: Map é uma coleção de objetos de chave do mapa e objetos de valor. Cada elemento contém um par de objetos -chave e objetos de valor.
Quando um mapa não é herdado da interface de coleta, sempre que um objeto chave é fornecido, o objeto Valor correspondente será retornado.
Métodos comuns para mapa:
1 Adicionar e excluir operações:
Objeto Put (chave do objeto, valor do objeto): Adicione elementos à coleção
Objeto Remover (chave do objeto): remove os elementos relacionados à chave
Void Putall (mapa t): adiciona todos os elementos de uma imagem específica à imagem
void clear (): remova todos os mapas da imagem
2 operações de consulta:
Objeto Get (chave do objeto): Obtenha o valor relacionado à chave da palavra -chave. Os principais objetos na coleção de mapas não podem ser repetidos, ou seja, o resultado de quaisquer dois objetos principais comparados pelo método iguals () são falsos. No entanto, quaisquer chaves múltiplas podem ser mapeadas exclusivamente para o mesmo objeto Value.
Conexões: classe de utilitário de coleção. As conexões fornecem métodos estáticos práticos para coleções Java
Resumir:
O uso básico das coleções de Java foi resumido. Os acima são as coleções Java mais usadas. Para detalhes, consulte o documento de ajuda do JDK. Haha, há muito mais aplicações de mapa, e é isso. As conexões fornecem muitos métodos práticos para lista /mapa, o que é muito útil para o desenvolvimento diário.
Boolean ContainsKey (chave do objeto): determina se existe uma chave de palavra -chave na imagem
Boolean ContainsValue (valor do objeto): determina se há um valor na imagem
int size (): retorna o número de mapas na imagem atual
boolean isEmpty (): determina se há algum mapeamento na imagem
A lista salva objetos na ordem em que os objetos entram, sem classificar ou editar operações. O SET aceita apenas uma vez para cada objeto e usa seu próprio método de classificação interno (geralmente, você se importa apenas se um elemento pertence a definir, não sua ordem - caso contrário, você deve usar a lista).
O mapa também salva uma cópia de cada elemento, mas isso é baseado em "chave" e o mapa também possui classificação interna, para que não se preocupe com a ordem em que os elementos são adicionados. Se a ordem em que os elementos forem adicionados forem importantes para você, você deve usar o LinkedHashSet ou o LinkedHashmap.
Método da função da lista:
Na verdade, existem dois tipos: um é o Arraylist básico, que tem a vantagem do acesso aleatório aos elementos, e o outro é o LinkedList mais poderoso, que não foi projetado para acesso aleatório rápido, mas possui um conjunto mais geral de métodos.
Lista: Ordem é o recurso mais importante da lista: garante que a ordem específica dos elementos seja mantida. A lista adiciona muitos métodos à coleção, permitindo a inserção e a remoção de elementos no meio da lista (isso é recomendado apenas para o LinkedList.) Uma lista pode gerar um listiterator, que pode usá -lo para atravessar a lista de duas direções ou inserir e remover elementos do meio da lista.
Arraylist: Lista implementada por Array. Permite acesso aleatório rápido aos elementos, mas a inserção e remoção de elementos no meio da lista é lenta. O listiterator deve ser usado apenas para iterar através da lista de Array de trás para a frente, em vez de inserir e remover elementos. Porque isso é muito mais caro que o LinkedList.
LinkList: o acesso seqüencial é otimizado e a sobrecarga de inserção e exclusão no meio da lista não é muito alta. O acesso aleatório é relativamente lento. (Use ArrayList. Esses métodos (não definidos em nenhuma interface ou classe base) fazem do LinkedList usar como uma pilha, fila e fila bidirecional.
Método de função do conjunto:
O set tem exatamente a mesma interface que a coleção, portanto, não há funcionalidade extra, diferentemente de duas listas diferentes na frente. De fato, Set é uma coleção, mas o comportamento é diferente. (Esta é uma aplicação típica de herança e pensamento polimórfico: executar comportamentos diferentes.) O conjunto não salva elementos duplicados (como para julgar os elementos são iguais, é mais responsável)
Conjunto: Cada elemento armazenado no conjunto deve ser único porque o conjunto não salva elementos duplicados. O elemento adicionado ao conjunto deve definir o método iguals () para garantir a singularidade do objeto. O conjunto tem exatamente a mesma interface que a coleção. A interface definida não garante a ordem dos elementos de manutenção.
HashSet: Definir projetado para pesquisa rápida. O objeto armazenado no hashset deve definir hashcode ().
TreeSet: Defina na ordem de salvamento, a camada subjacente é uma estrutura de árvore. Use -o para extrair sequências ordenadas do set.
LinkedHashSet: tem a velocidade de consulta do hashset e usa internamente a lista vinculada para manter a ordem dos elementos (ordem de inserção). Portanto, quando você usa um iterador para atravessar o conjunto, os resultados serão exibidos na ordem em que os elementos são inseridos.
Método de função do mapa:
Método put (chave do objeto, valor do objeto) adiciona um "valor" (deseja algo) e uma "chave" associada ao "valor" (usando -o para encontrar). O método GET (chave do objeto) retorna o "valor" associado à "chave" fornecida. Você pode usar o containsKey () e containsValue () para testar se um "chave" ou "valor" está incluído no mapa.
A biblioteca de classes Java padrão contém vários mapas diferentes: hashmap, Treemap, LinkedHashMap, fracashashmap, identityhashmap. Todos eles têm o mesmo mapa básico de interface, mas seu comportamento, eficiência, estratégias de classificação, salvar o ciclo de vida dos objetos e determinar o equivalente a "chaves".
A eficiência da execução é um grande problema com o mapa. Se você olhar para o que get () vai fazer, entenderá por que a pesquisa de "chave" no Arraylist é bastante lenta. E é aqui que o hashmap acelera. O Hashmap usa um valor especial chamado código de hash para substituir as pesquisas lentas por chaves.
"Has Code" é "relativamente exclusivo" para representar o valor INT de um objeto e é gerado convertendo certas informações do objeto. Todos os objetos Java podem gerar códigos de hash porque o hashcode () é um método definido no objeto de classe base.
Hashmap usa o hashcode () do objeto para uma consulta rápida. Este método pode melhorar significativamente o desempenho.
Mapa: mantém a correlação de "pares de valor-chave" para que você possa encontrar "valores" através de "chaves"
HashMap: O MAP é baseado na implementação da tabela de hash. A sobrecarga de inserção e consulta "pares de valor-chave" é corrigida. A capacidade de capacidade e o fator de carga do fator de carga podem ser definidos através do construtor para ajustar o desempenho do contêiner.
LinkedHashmap: semelhante ao hashmap, mas quando itera sobre ele, a ordem em que o "par de valores-chave" é sua ordem de inserção ou a ordem de menos recentemente usada (LRU). Apenas um pouco mais lento que o hashmap. É mais rápido enviar quando acessado iterativamente porque usa listas vinculadas para manter o pedido interno.
TreeMap: implementação com base na estrutura de dados de árvores vermelha e preta. Quando você olha para a "chave" ou "pares de valor-chave", eles são classificados (a ordem é determinada por comparação ou comparador). O TREEMAP é caracterizado pelo fato de que os resultados que você obtém são classificados. TreeMap é o único mapa com o método Submarp (), que pode retornar uma subárvore.
FrawHashmap: mapa -chave fraco, objetos usados no mapa também podem ser lançados: isso foi projetado para resolver problemas especiais. Se nenhuma referência fora do mapa apontar para uma "chave", essa "chave" poderá ser reciclada pelo coletor de lixo.
IdentifyHashMap: use == em vez de igual () para comparar "chaves". Projetado especificamente para resolver problemas especiais.