Visão geral da interface Collection em Java

Veja neste artigo uma visão geral sobre a interface Collection em Java, a interface superior na hierarquia das que formam a base das coleções genéricas da linguagem.

Interface Collection

É a interface absoluta na hierarquia de coleções. Dela descendem as interfaces Set, Queue (filas) e List (listas) que formam a base das coleções genéricas da linguagem Java.

  • Set – define uma coleção que não contém valores duplicados.
  • Queue – define uma coleção que representa uma fila, ou seja, implementa o modelo FIFO (First-In, First-Out)
  • List - define uma coleção ordenada que pode conter elementos duplicados.

As classes e interfaces dessa estrutura de coleções são membros do pacote java.util.


Figura 1: Estrutura das coleções e mapas

Declarando uma coleção


Figura 2: Declaração interface Collection

No exemplo da Listagem 1, estamos declarando uma variável chamada colecao que somente irá armazenar tipos String nesse espaço. Nesse exemplo estamos instanciando a classe que implementa a interface, como descrito no diagrama da Figura 1.

Listagem 1: Declaração de Collections
Collection<String> colecao = new ArrayList();

Apenas lembrando que tanto para declarar List como Collection será necessário importar os seguintes pacotes: java.util.ArrayList e java.util.Collection.

Veja agora alguns métodos da interface List implementados pela classe ArrayList.

Adicionando elementos

Para adicionar o elemento é invocado o método add que aceita um argumento do tipo definido, como mostrado na Listagem 2. Cada vez que invocamos esse método para a mesma coleção é adicionado um valor no fim da lista.

Listagem 2: Adiciona valores
import java.util.Collection; import java.util.ArrayList; public class MetodoAdd { public static void main(String[] args) { Collection<String> nomes = new ArrayList(); nomes.add("João"); nomes.add("Maria"); nomes.add("Eduardo"); nomes.add("Silvana"); nomes.add("Mário"); System.out.println(“Lista de nomes: ”+nomes); } }
Método isEmpty

Verifica se os dados dentro de um List estão vazios, tendo como retorno valor booleano, true ou false.

Listagem 3: Verificando a existência de valores
import java.util.Collection; import java.util.ArrayList; public class Metodo_isEmpty { public static void main(String[] args) { Collection<String> letras = new ArrayList(); letras.add("A"); letras.add("B"); letras.add("C"); letras.add("D"); letras.add("E"); letras.add("F"); if(letras.isEmpty()){ System.out.println("Lista Vazia!"); }else{ System.out.println("Contém valores -> "+letras); } } }

Nesse caso do exemplo da Listagem 3 a saída será a impressão das mensagens informando se a lista está vazia ou não, o que não ocorre, mas para testes poderia ser incluída uma ação para limpar essa lista através do método clear.

Removendo elementos

Para excluir uma ocorrência do valor especificado é usado o método remove.

Listagem 4: Removendo o elemento da posição 2
import java.util.Collection; import java.util.ArrayList; public class MetodoRemove { public static void main(String[] args) { Collection<Integer> fila = new ArrayList(); fila.add(255); fila.add(312); fila.add(883); fila.add(122); fila.add(9); System.out.println(“Valores da fila: ”+fila); fila.remove(312); //REMOVE OBJETO 312 System.out.println(“Valores atualizados da fila:”+fila); } }

Limpando os elementos da lista

Para executar essa ação basta invocar o método clear que irá limpar todos os elementos da coleção referenciada.

Listagem 5: Usando o método clear
import java.util.Collection; import java.util.ArrayList; public class MetodoRemove { public static void main(String[] args) { Collection<String> livros = new ArrayList(); livros.add("Java"); livros.add("Php"); livros.add("Python"); livros.add("SQL"); System.out.println("Listagem dos Livros: "+livros); livros.clear(); System.out.println("Listagem após o clear: "+livros); } }

Verificando se existem dados

Quando precisar verificar a existência de certos elementos dentro de uma coleção, é possível fazer isso através do método contains.

Listagem 6: Verifica se contém um elemento
import java.util.ArrayList; import java.util.Collection; public class VogaisColecao { public static void main(String[] args) { Collection<String> vogais = new ArrayList(); vogais.add("A"); vogais.add("E"); vogais.add("I"); vogais.add("O"); vogais.add("U"); System.out.println("Contém a vogal I ? "+vogais.contains("I")); System.out.println("Lista das vogais: "+vogais); } }

Adicionando elementos de outra coleção

O método addAll permite adicionar todo os elementos de uma lista no final de outra.

Listagem 6: Adiciona elementos de uma coleção em outra
import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class Dois_Collections { public static void main(String[] args) { Collection<String> vogais = new ArrayList(); vogais.add("A"); vogais.add("E"); vogais.add("I"); Collection<String> vogais2 = Arrays.asList("O", "U"); //RECEBE TODOS OS ELEMENTOS DA COLEÇÃO ADICIONANDO NA COLEÇÃO VOGAIS vogais.addAll(vogais2); System.out.println("Lista das Vogais: "+vogais); } }

Percorrendo Elementos

Para percorrer os elementos de uma coleção de forma prática, usamos a instrução foreach que permite acessar cada item individualmente.

Listagem 7: Percorre e imprime os elementos de uma coleção
import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; public class Percorre_Collections { public static void main(String[] args) { Collection<String> vogais = new ArrayList(); vogais.add("A"); vogais.add("E"); vogais.add("I"); vogais.add("O"); vogais.add("U"); //PERCORRE TODOS OS ELEMENTOS DA COLEÇÃO VOGAIS for(String vog : vogais){ System.out.println("Vogal: "+vog); } } }

Conclusão

Para mais informações sobre os métodos e conhecer mais sobre essa interface, acesse a documentação do Java através desse link: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html

Espero que tenham gostado e até a próxima!

Leia também o artigo: LinkedLists: O que acontece por trás da interface

Links Úteis

Saiba mais sobre Java ;)

  • Curso básico de Java Aplicado:
    O objetivo do curso de Java Básico aplicado é apresentar os conceitos básicos da linguagem de programação Java, assim como da Orientação a Objetos, aplicados em exemplos simples e úteis, utilizados pela maioria dos desenvolvedores no dia a dia do desenvolvimento de software.
  • Básico de Java e Orientação a Objetos:
    O objetivo deste curso básico de Java e Orientação a Objetos é apresentar os conceitos básicos da linguagem de programação Java e a orientação a objetos (OO), visando ensinar usuários leigos, com pouca experiência em linguagem de programação a trabalhar com a plataforma Java.
  • Curso de Java: Técnicas Avançadas para Java SE:
    Neste curso de Java avançado iremos nos aprofundar em tópicos de programação que ajudam você a entender os conceitos mais avançados de Java. Isso significa que o programador já precisa ter conhecimentos prévios da linguagem Java, bem como dos seus recursos, lógica de programação, depuração de código, IDEs, dentre outros conceitos básicos de programação.

Artigos relacionados