slides

Propaganda
Programação II – Java Collections
Framework (JCF)
Christopher Burrows
Arrays
 Um
Array é um contentor que armazena um
número fixo de valores de um tipo.
 Exemplo:
–
–
int arrayInt[] = new int[9]; <- cria um Array que
pode armazenar 9 números inteiros.
String nomes[] = new String[6]; <- cria um Array
que pode armazenar 6 Strings;
Arrays
 Os
arrays são estruturas simples e
eficientes, se se pretender armazenar um
número limitado de valores, mas têm a
limitação de serem estáticos.
 Se pretendermos armazenar um número
indefinido de valores, os Arrays não servem.
 Aí é necessário ter um contentor próprio para
tal.
Java Collections Framework
O
JCF é um conjunto de interfaces e
algoritmos que permitem criar e manipular
Collections.
 Uma Collection, à semelhança dum Array, é
um contentor que permite armazenar vários
objectos num só elemento.
 Mas, ao contrário de um Array, não é
necessário especificar a dimensão.
Java Collections Framework
 Exemplo:
Collection col = new ImplementacaoDeCollection();
Collection.add(Objecto1);
Collection.add(Objecto2);
–
O tamanho do contentor vai aumentando
consoante os objectos que lhe são adicionados.
Java Collections Framework
 As
–
–
–
–
Collections servem essencialmente para:
Agrupar objectos;
Armazenar objectos;
Ordenar objectos;
Pesquisar objectos;
Java Collections Framework
 Vantagens
–
–
–
sobre os arrays:
Estrutura dinâmica;
Código mais perceptivel;
Menor “esforço” de programação;
Java Collections Framework Interfaces

Interfaces principais, definidas pelo JCF:
Java Collections Framework Collection
 Collection:
–
Define as funcionalidades básicas que os seus
subtipos têm de definir:
 .add(Objecto
obj);
 .addAll(Collection col);
 .remove(Objecto obj);
 .removeAll(Collection col);
 .retainAll(Collection col);
Java Collections Framework - Map
 Map:
–
–
–
Interface que permite armazenar pares de chavevalor, isto é, para cada chave inserida existe um
valor que lhe está associado.
As chaves são obrigatoriamente únicas, enquanto
que os valores que lhes estão associados podem
ser repetidos.
Não é um subtipo de Collection, pelo que existem
métodos definidos pela Interface Collection, que
não contém.
Java Collections Framework - Map
–
Em vez do .add(Objecto obj), tem
o .put((Objecto)Chave, (Objecto)Valor);
–
Em vez do .contains(Objecto obj), tem
o .containsKey((Objecto)Chave), para saber se
contém uma determinada chave,
e .contains((Objecto)Valor), para saber se contém
um determinado valor.
Iteração dos elementos de uma
Collection – for-each
 Em
vez de um ciclo “for” normal (for (int i = 0;
i < Collection.length(); i++), pode-se utilizar o
for-each:
–
for(Objecto obj : col) <- para cada obj do tipo
Objecto na Collection col, repete o ciclo.
Iteração dos elementos de uma
Collection - Iterator



Um objecto Iterator serve para percorrer a
Collection.
Este objecto é criado chamando o método .iterator()
da Collection em questão.
Exemplo:
List <String> nomes = new ArrayList<String>();
Iterator <String> itNomes = nomes.iterator();
While (itNomes.hasNext()) {
String nome = itNomes.next();
}
Implementações comuns - Set
 Set
–
–
–
e SortedSet(Interface):
HashSet;
TreeSet;
LinkedHashSet;
Implementações comuns - List
 List
–
–
(Interface):
ArrayList;
LinkedList;
Implementações comuns - Map
 Map
–
–
–
e SortedMap (Interface):
HashMap;
TreeMap;
LinkedHashMap;
Exemplos
List <String> nomes = new ArrayList<String>();
Map <String, String> dicionario = new
HashMap<String, String>();
Exercicio
 Aproveitando
o código da aula anterior, criar
uma Lista de Forma(s).
 Criar um ciclo que se repita 10 vezes (de x =
0 até x = 10).
 Se o número for par (x%2==0), cria um novo
Circulo com x de raio.
 Caso contrário, cria um novo Quadrado com
o lado de tamanho x.
Exercicio
 Uma
vez inicializada a Forma(como
Quadrado ou Circulo), esta deverá ser
inserida na Lista de formas (ainda dentro do
ciclo).
 Após concluido este ciclo, percorrer a Lista e
mostrar a área de cada uma das formas no
seguinte formato:
–
–
“A área do Circulo é: “ + area;
“A área do Quadrado é: “ + area;
Download