Programação Java

Propaganda
Programação Java
- Collections Marco Fagundes
[email protected]
© 2007 Marco Fagundes - [email protected]
1
Tópicos
Collections
Tipos Genéricos
Exercício
© 2007 Marco Fagundes - [email protected]
2
Introdução
O que é uma coleção?
Um objeto que agrupa múltiplos elementos em uma
única unidade
Usadas para armazenar, recuperar e manipular
elementos que formam um grupo natural.
Ex.: Vector, Hashtable, array (JDK 1.1)
© 2007 Marco Fagundes - [email protected]
3
A API Collections
A API Collection contém interfaces que agrupam
os objetos como uma:
Coleção(Collection) – um grupo de objetos.
Ordenamento e permissão de duplicatas
depende de cada implementação
Conjunto(Set) – Um coleção sem ordenação e
sem duplicatas
Lista(List) – coleção sem ordenação.
Duplicatas são permitidas.
© 2007 Marco Fagundes - [email protected]
4
Collections
Os elementos de uma Collection são do tipo
Object (Caso não se utilize tipos genéricos)
Qualquer tipo abstrato pode ser armazenado em
Collections
Tipos primitivos não são permitidos – as classes
empacotadoras devem ser usadas no lugar de
tipos primitivos
É necessário fazer o cast correto antes de usar um
objeto retirado de uma collection (Caso não se
utilize tipos genéricos)
© 2007 Marco Fagundes - [email protected]
5
Collections
Conjunto de interfaces, implementações e algoritmos
Interfaces
© 2007 Marco Fagundes - [email protected]
6
Implementações
Hashtable x HashMap
LinkedList x ArrayList x Vector
TreeSet implements SortedSet
TreeMap implements SortedMap
© 2007 Marco Fagundes - [email protected]
7
Tipos Genéricos
A partir do J2SE 5.0
A API Collections API fornece funcionalidades
comuns para LinkedLists, ArrayLists and HashMaps
que podem ser usadas para mais de um tipo
Exemplo na versão 1.4:
ArrayList list = new ArrayList();
list.add(0, new Integer(42));
int total = ((Integer)list.get(0)).intValue();
© 2007 Marco Fagundes - [email protected]
8
Tipos Genéricos
Na última linha, o cast para Integer é necessário
porque a API Collection na versão 1.4 armazena
todos os itens como subtipo de Object
(superclasse).
O código anterior pode ser escrito da seguinte
forma usando a biblioteca Collections genérica:
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0, new Integer(42));
int total = list.get(0).intValue();
© 2007 Marco Fagundes - [email protected]
9
Loop Avançado
A classe Iterator é usada pela API Collections para
navegação
O loop avançado não necessita de iterator e nem de de
castind adicional
Antes
ArrayList list = new ArrayList();
for (Iterator i = list.iterator(); i.hasNext();) {
System.out.println((String)i.next());
}
Depois
ArrayList<String> list = new ArrayList<String>();
for (String str : list) { System.out.println(str) }
© 2007 Marco Fagundes - [email protected]
10
Lab1 - Tipos Genéricos e Loop Avançado
Construa um programa que permita o cadastro de
5 candidatos (numero e nome)
Liste todos os candidatos cadastrados
© 2007 Marco Fagundes - [email protected]
11
Leitura Recomendada
http://java.sun.com/docs/books/tutorial/collections
/index.html
http://java.sun.com/docs/books/tutorial/extra/gen
erics/index.html
© 2007 Marco Fagundes - [email protected]
12
Download