Java Collections Framework
Muito antes em Java 2, Java fornece categoria ad hoc. Por exemplo: as classes Dictionary, Vector, pilha e propriedades usadas para armazenar e manipular grupos de objectos.
Embora estas classes são muito úteis, mas eles não têm um tema central, unificador. Por esta razão, use a classe maneira Vector e usar a classe Propriedades tem uma maneira muito diferente.
Framework coleções é projetado para atender os seguintes objetivos.
- A estrutura deve ser elevado desempenho. O conjunto básico (matrizes dinâmicas, listas ligadas, árvores, tabelas de hash) implementação também deve ser eficiente.
- A estrutura permite a diferentes tipos de conjuntos, de um modo semelhante com um elevado grau de interoperabilidade.
- Extensão e adaptação de uma coleção deve ser simples.
Para este fim, toda a estrutura de coleta é projetado em torno de um conjunto de interfaces padrão. Você pode usar essas interfaces padrão para alcançar, tais como: LinkedList, HashSet, TreeSet e similares, além disso você também pode implementar sua própria coleção através destas interfaces.
estrutura das coleções é uma arquitetura unificada usado para representar e manipular coleções. Todos quadro coleções contém o seguinte:
- Interface: É um tipo de dado abstrato representa coleção. Interface permite a manipulação independente dos detalhes de cobrança de seus representantes. Em linguagens orientadas a objetos, as interfaces geralmente formam uma hierarquia.
- Implementação (classe): é a realização de um conjunto de interfaces. Essencialmente, eles são estruturas de dados reutilizáveis.
- Algoritmo: algum objeto computacional útil que implementa a interface no método de recolha de realizar, por exemplo: pesquisa e classificação. Esses algoritmos são chamados de multi-estado, é porque o mesmo método pode ter diferentes implementações em uma interface similar.
Além da coleção, o quadro também define várias interfaces Mapa e classes. Mapa é armazenada em pares de chave / valor. Apesar Mapa não coleções, mas eles são totalmente integrados na coleção.
Interfaces de coleta
estrutura de coleta define uma série de interfaces. Esta seção fornece uma visão geral de cada interface:
Não. | Interface Descrição |
---|---|
1 | interface de coleta permite que você use um grupo de objetos, é a hierarquia de raiz interface de coleta. |
2 | Os elementos da interface lista herdada de Recolha e uma instância de lista de armazenar uma coleção ordenada. |
3 | definir Herdado de Collection, é uma coleção que não contém elementos duplicados. |
4 | SortedSet Situado em uma sucessão ordenada para salvar o conjunto. |
5 | mapa Os únicos mapas chaves para valores. |
6 | Map.Entry Um elemento descrição (pares chave / valor) em um mapa. Mapa é uma classe interna. |
7 | SortedMap Herdado do Mapa, então Key realizada em ordem crescente. |
8 | enumeração Esta é uma definição tradicional de interfaces e métodos pelos quais você pode enumerar (uma vez obtida a) objetos nas coleções. Esta tradição foi substituída pela iteração de interface. |
Colecções
Java fornece um conjunto de padrão classe implementa a interface Collection. Alguns deles são classes específicas que podem usá-lo, enquanto outros são classes abstratas, fornece uma implementação parcial da interface.
classes de colecção padrão encontram-se resumidos na tabela seguinte:
Não. | classe Descrição |
---|---|
1 | AbstractCollection Para atingir a maioria das interfaces de cobrança. |
2 | AbstractList Herança em AbstractCollection e alcançou a maior parte da interface List. |
3 | AbstractSequentialList Herdado de AbstractList, ele fornece acesso a elementos de dados na cadeia em vez de acesso aleatório. |
4 | LinkedList Herdado de AbstractSequentialList, ele implementa uma lista vinculada. |
5 | ArrayList Através AbstractList herança, matrizes dinâmicas. |
6 | AbstractSet Herança em AbstractCollection e alcançou maior parte da interface Set. |
7 | HashSet Ele herdou AbstractSet, e utilizar uma tabela hash. |
8 | LinkedHashSet Com ordem de iteração previsível e ligada lista de hash de interface Set mesa. |
9 | TreeSet Herdado de AbstractSet, usando elementos da ordem natural dos elementos em ordem. |
10 | AbstractMap Para atingir a maior parte da interface Map. |
11 | HashMap HashMap é uma tabela hash, que armazena o conteúdo de pares chave-valor (key-value) de mapeamento. HashMap herdou AbstractMap, percebeu interface Map, Cloneable, java.io.Serializable. |
12 | TreeMap Ele herdou AbstractMap, e o uso de uma árvore. |
13 | WeakHashMap Herdado da classe AbstractMap, use uma tabela hash chaves fracas. |
14 | LinkedHashMap Herdado de HashMap, usando os elementos da ordem natural dos elementos a serem classificados. |
15 | IdentityHashMap herança de classe AbstractMap, usando Referência de igualdade ao comparar documentos. |
No tutorial anterior, foram discutidos por classes java.Util definidos no pacote, como segue:
Não. | classe Descrição |
---|---|
1 | vetor classe Vector implementa uma matriz dinâmica. E ArrayList e similares, mas os dois são diferentes. |
2 | pilha Pilha é uma subclasse de vetor, o qual implementa uma pilha LIFO padrão. |
3 | dicionário classe Dictionary é uma classe abstrata que é usado para armazenar pares de chave / valor, semelhante a uma ação de classe e Mapa. |
4 | Hashtable Hashtable é parte do java.util original é uma implementação concreta dicionário. |
5 | propriedades Propriedades herda de Hashtable. Representa um conjunto persistente de propriedades. Cada chave e seu valor correspondente na lista de propriedades é uma string. |
6 | BitSet Uma classe bitset cria um tipo especial de matriz para armazenar o valor do bit. BitSet com o tamanho da matriz será necessário aumentar. |
Uma classe bitset cria um tipo especial de matriz para armazenar o valor do bit. BitSet com o tamanho da matriz será necessário aumentar.
algoritmo de coleta
Quadro Colecções define vários algoritmos pode ser utilizada para a recolha e mapeamento. Esses algoritmos são métodos estáticos da classe é definida como uma coleção.
Ao tentar comparar tipos incompatíveis, alguns métodos podem jogar um ClassCastException. Ao tentar modificar um conjunto de não-modificáveis, uma exceção UnsupportedOperationException.
Coleção define três variáveis estáticas: EMPTY_SET EMPTY_LIST, EMPTY_MAP de. Essas variáveis são imutáveis.
Não. | algoritmo Descrição |
---|---|
1 | algoritmos de coleta Aqui está uma lista de todos os algoritmos. |
Como utilizar o iteradora
Normalmente, você vai querer atravessar uma coleção de elementos. Por exemplo, cada elemento do conjunto é apresentado.
Fazê-lo da maneira mais fácil é usar um iterador, é um objeto que implementa a interface Iterator ou interface ListIterator.
Iterators, de modo que você pode remover o elemento para obter ou definir pela circulação. ListIterator herdou Iterator, permitindo bidirecional percorrer a lista e modificar elementos.
Como utilizar o comparador
TreeSet e TreeMap ordem de classificação de acordo com o elemento de armazenamento. No entanto, isto é, comparando o dispositivo definido com precisão em termos do que a ordem de classificação.
Esta interface permite-nos de diferentes maneiras para ordenar um conjunto.
Não. | Comparação dos métodos descrito |
---|---|
1 | Use Java Comparator Comparador de interface fornece todos os métodos aqui indicados a título de exemplo |
resumo
Java Collections Framework fornece o programador com estruturas de dados pré-embalados e algoritmos para manipulá-los.
Uma coleção é um objeto que pode conter referências a outros objetos. Coleção declaração de interface de operação para cada tipo de coleta pode ser realizada.
Coleções aulas Framework e interfaces estão no pacote java.util.