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.
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 elementosPara 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.
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);
}
}
Verifica se os dados dentro de um List estão vazios, tendo como retorno valor booleano, true ou false.
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.
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.
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.
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.
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.
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.