You are on page 1of 31

Programao Orientada a Objetos

Colees

Jaqueline Faria de Oliveira


Mestre em Informtica
E-mail: jaqueline.oliveira@prof.unibh.br
Material baseado nas aulas do Professor Moiss Pereira UNIBH.

Colees

Introduo
Java fornece implementaes de estruturas de dados
recorrentemente utilizadas, por exemplo:

Lista
Pilha
Fila
Hash
Entre outras

Estas estruturas so denominadas colees.


Permitem que o programador as utilizem sem se preocupar
com a forma como foram implementadas.
3

Introduo
Em Java uma coleo
um objeto
Pode armazenar referncias a outros objetos
Possui um iterador (Iterator)

Algumas interfaces de estrutura de coleo


Interface
Collection
Set
List
Map
Queue

Descrio
A interface-raiz na hierarquia de colees a partir da qual as
interfaces set queue e list so derivadas.
Uma coleo que no contm duplicatas.
Uma coleo ordenada que pode conter elementos duplicados.
Associa chaves a valores e no pode conter chaves duplicadas.
Em geral uma coleo primeiro a entrar primeiro a sair que
modela uma fila de espera; outras ordens podem ser
especificadas.
4

Introduo
Algoritmos da classe Collections

Fonte: Deitel, 6 edio, pgina 687


5

Introduo
As colees de Java so definidas em java.util.*
As colees de Java implementam a interface Collection.
A interface Collection fornece um mtodo iterator que
retorna um objeto do tipo Iterator.

Iterator

Iterator
Funciona como um ponteiro para o primeiro elemento da sua
coleo.
Exemplo:
ArrayList <String> nome = new ArrayList<>();
nome.add("Ana");
nome.add("Joana");
nome.add("Roberta");
Iterator it = nome.iterator();

A varivel it recebe um ponteiro para o primeiro item da lista. No


exemplo para o item Ana.
Utiliza-se alguns mtodos do iterator para navegar na coleo.
Exemplo:
while (it.hasNext()){
//Comandos
}
8

Arrays

Arrays
Classe java.util.Arrays
Fornece mtodos estticos (static) para manipular arranjos.
Possui os seguintes mtodos, entre outros:
sort: ordena o arranjo
copyOf: faz uma cpia de um arranjo

equals: compara dois arranjos

10

Arrays

11

Listas

12

Listas
uma coleo que pode conter elementos duplicados.
java.util.List uma interface de Java que define listas.
A interface List implementada por:
Vector: uma implementao para arranjos em Java 1.0 antes de
colees serem inseridas em Java.
ArrayList: realiza basicamente as mesmas operaes que Vector,
porm com melhor desempenho
LinkedList: implementao para lista encadeada.
13

ArrayList

14

ArrayList

15

ArrayList
Ao se declarar colees, deve-se definir seu tipo:
Exemplo:
ArrayList <String> X = new ArrayList<>();
ArrayList Y = new ArrayList<>();

Caso o tipo no seja declarado, a coleo poder


receber diversos objetos de tipos diferentes.
Prtica da Notao Generics ou Notao
Diamante (Diamond).
Isso funcionar para todas as colees.
16

Pilha

17

Pilha
uma coleo que implementa LIFO (ltimo a entrar
primeiro a sair).
Classe java.util.Stack
Mtodos principais:

peek: verifica elemento do topo da pilha


pop: desempilha elemento da pilha
push: empilha elemento na pilha
empty: verifica se a pilha est vazia

18

Stack

19

Conjuntos

20

Conjuntos
Um conjunto uma coleo que no contm elementos
duplicados.
java.util.Set a interface que define um conjunto em Java.
java.util.HashSet uma classe que implementa a interface
Set.

21

Conjuntos
Principais mtodos de java.util.HashSet:
add: inclui um elemento no conjunto se ele ainda no estiver no
conjunto.
contains: verifica se o conjunto contm um elemento.
isEmpty: verifica se o conjunto est vazio.

22

Conjuntos

23

Mapas

24

Mapas
Mapas (mapeamentos):
associam chaves a valores
chaves no podem ser duplicadas

Diferena entre mapa e conjunto


Conjuntos possuem somente valores
Mapas possuem chaves que so mapeadas para valores

25

Mapas
java.util.HashMap
containsKey (Object key): verifica se o mapa possui a chave
informada.
containsValue (Object value): verifica se h no mapa alguma
chave mapeada para o valor informado.
get (Object key): retorna o valor para o qual a chave informada
est mapeada.

26

Mapas
put (Object key, Object value): insere um mapeamento da
chave para o valor no mapa.

remove(Object key): remove o mapeamento referente chave


informada.
keySet(): retorna um Set com as chaves do mapa.
values(): retorna uma coleo com os valores presentes no
mapa.

27

Mapas

28

Mapas

29

Referncia
BARNES, David; KLLING, Michael.. Programao Orientada a
Objetos com Java: Uma introduo prtica usando o BlueJ.
So Paulo: Pearson Prentice Hall, 4 ed., 2009.
DEITEL, H. M.; DEITEL, P. J. Java - Como Programar. 8 ed.
Prentice-Hall, 2011. Captulos 7 e 20.

30

Perguntas

?
31

You might also like