Java Collections - Set, List e Iterator PDF
Java Collections - Set, List e Iterator PDF
1/11
27/10/2016 Java Collections: Set, List e Iterator
List e ArrayList
O List é uma interface e o ArrayList é a classe que a implementa. Veja
um exemplo na Listagem 1.
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
/**
* @param args
*/
public static void main(String[] args) {
/*
* Declaremos nosso objeto sem nenhuma instância
*
* */
List carros;
/*
* Criamos uma instância qualquer para o nosso objeto
* do tipo List, sendo que essa instância deve
* obrigatoriamente implementar a interface List.
* Veja as possibilidades
* */
carros = new ArrayList();
carros = new LinkedList();
2/11
27/10/2016 Java Collections: Set, List e Iterator
import java.util.ArrayList;
import java.util.List;
/**
* @param args
*/
public static void main(String[] args) {
/*
* Agora adicionamos um Generic "<Carro>", assim só podemos
* adicionar objetos do tipo 'Carro' nossa lista.
*
* */
List<Carro> carros;
/*
* Criamos uma ArrayList apenas com carros
3/11
27/10/2016 Java Collections: Set, List e Iterator
* */
carros = new ArrayList<Carro>();
/*
* Você conseguirá criar sem problemas um ArrayList
* sem passar o tipo Generic, mas a IDE irá dar um
* Warning dizendo que você deveria passar um
* tipo Generic, para evitar erros em runtime.
* */
carros = new ArrayList();
/*
* O código abaixo não será compilado, erro em tempo de
* design. Pois nosso objeto 'carros' agora é muito
* exigente: Só aceita implementações de List que tenham
* objetos do tipo 'Carro'. Estamos tentando fazer
* um 'cast' de Animal para Carro e
* isso não possível.
* */
carros = new ArrayList<Animal>();
import java.util.ArrayList;
import java.util.List;
/**
* @param args
*/
public static void main(String[] args) {
4/11
27/10/2016 Java Collections: Set, List e Iterator
/*
* Imagine que desejamos adicionar uma lista de
* carros novos a nossa lista de carros,
* podemos adicionar todos de uma só vez, usando o 'addAll'
* */
carros.addAll(carrosNovos);
/*
* Verifica se o carro está na lista de carros.
* Mas como essa verificação é feita ?
* Através do método 'equals' do seu objeto carro.
* Sendo assim, na implementação do
* seu bean 'Carro', é muito importante que você
* sobreescreva o método 'equals' dizendo
* como as comparações devem ser realizadas.
* */
carros.contains(carro);
5/11
27/10/2016 Java Collections: Set, List e Iterator
Set e HashSet
Assim como o List é uma interface e o ArrayList é sua implementação,
o Set e HashSet seguem a mesma analogia, onde o Set é a interface e
o HashSet é sua implementação. Observe a Listagem 4.
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* @param args
*/
public static void main(String[] args) {
Set<Carro> carros;
6/11
27/10/2016 Java Collections: Set, List e Iterator
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* @param args
*/
public static void main(String[] args) {
Set<Carro> carros;
/*
* Percorrer todo SET com iterator
* */
Iterator<Carro> carrosAsIterator = carros.iterator();
while (carrosAsIterator.hasNext()){
Carro it = carrosAsIterator.next();
7/11
27/10/2016 Java Collections: Set, List e Iterator
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
8/11
27/10/2016 Java Collections: Set, List e Iterator
9/11
27/10/2016 Java Collections: Set, List e Iterator
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* @param args
*/
public static void main(String[] args) {
Set<Carro> carros;
/*
* Percorrer todo SET com iterator usnado foreach
* */
for(Iterator<Carro> iter = carros.iterator();
iter.hasNext();) {
Carro carroAtual = iter.next();
}
10/11
27/10/2016 Java Collections: Set, List e Iterator
11/11