conjunto
Dois tipos principais na biblioteca de contêiner Java
1. Apenas um elemento é armazenado em cada slot
Collection:描述所有序列容器的共性的根接口;
List:以特定的顺序保存一组元素;
Set:元素不能重复;
Queue:只允许在容器的一端插入对象,并从另一端移除对象。
2. Dois objetos são salvos em cada slot
Map:键与之相关联的值。
Lista
1. Resumo do método:
- add (E e): anexa o elemento especificado ao final desta lista (operação opcional);
- contém (Objeto o): Se esta lista contém o elemento especificado, ele retorna verdadeiro;
- remove (int index): exclui o elemento na posição especificada na lista (operação opcional), o método equels () será usado;
- indexOf (Object o): Retorna o índice da primeira ocorrência do elemento especificado nesta lista. Se esta lista não contiver um elemento, retorna -1. O método equels () será usado;
- subList (int fromIndex, int toIndex): Retorna a visualização entre fromIndex (inclusive) e toIndex especificado nesta lista;
- containsAll (Collection <?> c): Se esta lista contém todos os elementos da coleção especificada, ela retorna true.
- retémAll (Coleção <?> c): retém apenas os elementos nesta lista contidos na coleção especificada (operação opcional), o comportamento resultante depende de equals ();
- removeAll (Collection <?> c): Remove todos os elementos contidos na coleção especificada desta lista (operação opcional), o comportamento resultante depende de equals ();
- set (int index, elemento E): Substitua o elemento na posição especificada nesta lista pelo elemento especificado (operação opcional);
- isEmpty (): Se esta lista não contiver elementos, ela retornará verdadeiro;
- clear (): apaga todos os elementos desta lista (operação opcional);
2. ArrayList: É mais longo do que os elementos de acesso aleatório, mas é mais lento para inserir e remover elementos no meio da Lista;
3. LinkList: fornece acesso otimizado por meio de operações de inserção e exclusão de baixo custo no meio da lista.
- Implementou a interface básica da lista
- getFirst () e element () retornam o cabeçalho da lista em vez de removê-lo. Se a lista estiver vazia, uma NoSuchElementException será lançada; se a lista estiver vazia, o método peek () retornará nulo;
- removeFirst () e remove () removem e retornam o topo da lista, e lançam NoSuchElementException quando a lista está vazia; poll () retorna null se a lista estiver vazia;
- removeLast () remove e retorna o último elemento da lista.
Pilha
1. A LinkList first-in-last-out (LIFO) tem um método para implementar diretamente todas as funções da pilha, então você pode usar diretamente a LinkedList como uma pilha. Às vezes, uma "pilha" real pode tornar as coisas claras.
public class Stack<T> {
private LinkedList<T> storage = new LinkedList<T>();
public void push(T v){
storage.addFirst(v); }
public T peek(){
return storage.getFirst(); }
public T pop(){
return storage.removeFirst(); }
public boolean empty(){
return storage.isEmpty(); }
public String toString(){
return storage.toString(); }
}
Fila
1. A fila é um contêiner típico primeiro a entrar, primeiro a sair (FIFO), ou seja, as coisas são colocadas em uma seção do contêiner e retiradas da outra extremidade e a ordem em que as coisas são colocadas no contêiner é a mesma em que são retiradas
2. Resumo do método:
* offer(E e) :如果在不违反容量限制的情况下立即执行,则将指定的元素插入到此队列中;
* peek() :检索但不删除此队列的头,如果此队列为空,则返回 null;
* element() :检索,但不删除,这个队列的头,为空会抛出NoSuchElementException;
* poll() :检索并删除此队列的头,如果此队列为空,则返回 null 。
* remove() 检索并删除此队列的头,为空会抛出NoSuchElementException。
3. PriorityQueue
A fila de prioridade declara que o próximo elemento exibido é o elemento mais necessário (com a prioridade mais alta)
Conjunto
1. HashSet: Use uma maneira bastante complicada de armazenar elementos, a maneira mais rápida de obter elementos, use uma função hash;
2. TreeSet: Salve os objetos em ordem crescente dos resultados da comparação e armazene-os na estrutura de dados em árvore vermelha e preta;
3. LinkedHashSet: Salva objetos na ordem em que são adicionados; hashes também são usados e listas vinculadas são usadas para manter a ordem de inserção dos elementos.
Mapa
1. Map pode retornar um conjunto de suas chaves, seu valor é Collection ou seu par de valores-chave é Set, keySet () retorna uma visualização Set das chaves contidas neste mapa.
1. HashMap: Fornece a tecnologia de pesquisa mais rápida, não armazena elementos em nenhuma ordem óbvia;
2. TreeMap: Salve as chaves do objeto em ordem crescente do resultado da comparação;
3. LinkedHashMap: Salve as chaves na ordem de inserção, mantendo a velocidade de pesquisa do HashMap.
Iterator
1. Iterator também é um padrão de design, é um objeto, ele atravessa e seleciona objetos na sequência quando funciona;
2. Estranhas restrições aos iteradores:
* 使用iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的一个元素;
* 使用next()获得序列中的下一个元素;
* 使用hasNext()检查序列中是否还有元素;
* 使用remove()将迭代器信近返回的元素删除。