CodeGym /Cursos /All lectures for PT purposes /Estrutura de Coleção Java

Estrutura de Coleção Java

All lectures for PT purposes
Nível 1, Lição 18
Disponível

Introdução

Quase todo programa precisa armazenar algum conjunto de dados. Podem ser strings e números, objetos e assim por diante. Arrays são uma excelente solução de armazenamento. Mas as matrizes têm certas limitações. Por exemplo, seu tamanho é fixo, os elementos não podem ser removidos e você não pode inserir elementos no meio. As coleções foram criadas para contornar essas e outras limitações. Todos os tipos de coleções (e existem muitos deles, como veremos mais adiante nesta lição) têm a capacidade de se redimensionar dinamicamente. Alguns tipos de coleção podem armazenar elementos ordenados e colocar automaticamente novos elementos em ordem à medida que são adicionados.

Nesta lição, conheceremos a hierarquia de classes das coleções base no Java Collections Framework . Existem também várias bibliotecas alternativas que estendem os recursos do Java Collections Framework padrão . O mais popular deles é o Guava (Google Collections Library).

*Nem todas as interfaces e classes estão representadas no diagrama. Alguns foram omitidos para facilitar a compreensão.

Interfaces básicas

O diagrama mostra que existem duas interfaces básicas implementadas para formar o restante das classes e interfaces.

Vamos dar uma olhada nessas interfaces:

  1. Coleção — Uma coleção comum que contém um conjunto de elementos (objetos). Essa coleção possui métodos básicos para trabalhar com elementos: inserir ( add , addAll ), remover ( remover , removerAll , limpar ), pesquisar ( contém , contémAll ), verificar se a coleção está vazia ( isEmpty ) e obter tamanho ( size ).

  2. Map — Uma coleção estruturada como pares chave-valor. Além disso, cada chave em um mapa é única: não há duas chaves com valores idênticos. Essa coleção às vezes é chamada de dicionário . Mapa é uma interface separada. Ele não implementa a interface Collection , mas faz parte do Java Collections Framework .

Métodos úteis para trabalhar com elementos em um Mapa :

  • inserir ( colocar , colocarTudo )

  • get ( get , keySet , valores , entrySet )

  • remover ( remover , limpar )

  • pesquisa ( contémChave , contémValor )

  • verifique se a coleção está vazia ( isEmpty )

  • obter tamanho ( tamanho )

Agora vamos falar mais sobre cada um deles.

interface de coleção

A interface Collection estende a interface Iterable , que possui um único método: iterator() . Para nós, isso significa que qualquer coleção que herdar Iterable poderá retornar um iterador.

Um iterador é um objeto especial que você pode usar para acessar os elementos de qualquer coleção, independentemente de sua implementação específica.

A figura mostra que 3 interfaces herdam a interface Collection : List , Queue e Set . Agora veremos cada um deles brevemente.

List é uma coleção ordenada que permite valores duplicados. Uma particularidade de uma Lista é que seus elementos são numerados e podem ser acessados ​​por número (índice).

Uma fila armazena elementos na ordem em que foram adicionados à fila.

Ao contrário de uma lista, um Set representa uma coleção não ordenada que não permite elementos repetidos. A interface Set corresponde ao conceito de um conjunto matemático .

Implementações da interface do mapa

Podemos ver que a interface Map representa um mapeamento entre chaves e valores exclusivos.


interface Map<K, V>

onde K é o tipo das chaves e V é o tipo dos valores armazenados.

Usando uma chave, podemos extrair dados de um Map . Para adicionar um elemento a um Map , devemos especificar uma chave e um valor.

Vejamos algumas implementações de Map :

  1. HashMap é uma implementação de Map baseada em tabelas de hash. Ele pode armazenar chaves e valores de qualquer tipo, incluindo null . A ordem dos elementos não é garantida.

  2. LinkedHashMap é uma estrutura de dados que armazena dados como uma lista encadeada de elementos. Os elementos aparecem na lista na ordem em que foram adicionados.

  3. TreeMap implementa a interface SortedMap (através da interface NavigableMap ). Os elementos dessa estrutura são armazenados em ordem de classificação (quando um novo elemento é adicionado, a coleção é classificada automaticamente). O TreeMap é ótimo para armazenar grandes quantidades de dados classificados com recuperação rápida.

Coleções desatualizadas:

Java possui coleções obsoletas de versões anteriores (para manter a compatibilidade com versões anteriores). Essas coleções antigas não devem ser usadas no novo código:

  • Enumeração — análoga à interface Iterator ;

  • Vector — uma lista ordenada de elementos e análoga à classe ArrayList ;

  • Pilha — uma implementação da estrutura de dados de pilha, que armazena e manipula elementos como você interagiria com uma pilha de livros. Existem métodos para adicionar elementos à pilha ( push ) e retirá-los ( pop );

  • Dictionary — análoga à interface Map , mas é uma classe abstrata;

  • Hashtable — análogo a HashMap .

Você pode ler mais sobre o Collections Framework neste artigo .

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION