Buscar

Aula 11 Collection

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

J ava 2 C ollections F ramework
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.
• E x.: Vector, Has htable, array
2
C ollections F ramework
• C onjunto de interfaces , implementações e 
algoritmos
– Interfac es : E stes s ão os tipos de dados abstratos 
que representam coleções . 
– Implementaç ões : E stas s ão as implementações 
concretas da coleção de interfaces .
– Alg oritmos : E stes s ão os métodos que executam 
computações úteis , tais como busca e ordenação nos 
objetos que implementam as interfaces de coleta. O s 
algoritmos devem ser polimórficos , ou seja, o mesmo 
método pode ser usado em muitas implementações 
diferentes da interface de coleta apropriado. 
3
Vantagens
• R eduz es forço de programação
• Aumenta velocidade e qualidade na 
programação
• P ermite interoperabilidade entre AP I´s
• R eduz es forço para aprender uma nova 
AP I
• R eduz es forço para criar uma nova AP I
• P romove reuso
4
Intefaces
5
Mais detalhes
6
Interface C ollection
• Define as funcionalidades bás icas que os 
seus subtipos têm de definir:
– .add(O bjecto obj);
– .addAll(C ollection col);
– .remove(O bjecto obj);
– .removeAll(C ollection col);
7
Interface Map
• Interface que permite armazenar pares de 
chave valor, is to é, para cada chave 
inserida exis te um valor que lhe es tá
associado.
• As chaves s ão obrigatoriamente únicas , 
enquanto que os valores que lhes es tão 
associados podem ser repetidos .
• Não é um subtipo de C ollection.
8
Interface Map
• E m vez do .add(Objecto obj), tem o 
.put((Objecto)C have, (Objecto)Valor);
• E m vez do .contains (Objecto obj), tem o 
.containsK ey((O bjecto)C have), para saber 
se contém uma determinada chave, e 
.contains ((Objecto)Valor), para saber se 
contém um determinado valor.
9
Iterator
• P ara navegar pelos objetos de uma 
coleção devemos utilizar o Iterator.
• Uma coleção pode ter vários Iterators .
– O s principais métodos :
• hasNext() - verifica se exis tem mais elementos .
• next() - recupera o próximo elemento.
• remove() - remove um elemento.
10
E xemplo de C ollection usando
Iterator
11
package com.javabasico.collection;
import java.util.*;
public class ExemploDeCollection {
public static void main(String[] args) {
/*
* Essa é a sintaxe para criar uma coleção simples. 
*/
Collection colecao = new ArrayList();
/*
* Agora, vamos criar alguns objetos e fazer as atribuições.
* 
*/
ObjetoQualquer objeto1 = new ObjetoQualquer();
objeto1.setNome("Primeiro nome");
ObjetoQualquer objeto2 = new ObjetoQualquer();
objeto2.setNome("Segundo nome");
ObjetoQualquer objeto3 = new ObjetoQualquer();
objeto3.setNome("Terceiro nome");
E xemplo de C ollection usando
Iterator
12
/*
* O último passo é adicionar cada um dos objetos em nossa coleção.
*/
colecao.add(objeto1);
colecao.add(objeto2);
colecao.add(objeto3);
/*
* Para recuperar os objetos de uma coleção devemos utilizar um Iterator.
* Veja o exemplo de sintaxe. 
* Observação: só existe a possibilidade de navegação para frente.
*/
Iterator iteColecao = colecao.iterator();
while (iteColecao.hasNext()) {
//Conversão obrigatória. Atenção a esse detalhe!!!
ObjetoQualquer objetoRecuperado = (ObjetoQualquer) iteColecao.next();
//Pronto, agora você pode utilizar o objeto que foi recuperado da maneira que 
quiser.
System.out.println("Objeto recuperado: " + objetoRecuperado.getNome());
}
}
}
Interface S et
• C oleção que não contém elementos 
duplicados .
• Não garante ordem entre os elementos
• Não acrescenta métodos
• C lasses que a implementam:
– HashS et
– T reeS et
– L inkedHashS et
13
Implementações da interface 
S et
• HashS et – Armazena elementos em uma tabela de
hash(hash table) possuindo melhor performance, mas não 
oferece garantias de ordenação.
• T reeS et – Armazena elementos em um tipo de árvore binária 
conhecida, garantindo as s im a ordem entre s eus elementos
• L inkedHashS et - Armazena elementos em uma tabela de
has h, mas mantém uma lis ta encadeada utilizada para manter a 
ordem de ins erção dos elementos .
14
E xemplo utilizando a interface 
S et
package com.javabasico.collection;
import java.util.*;
public class ExemploDeSet {
public static void main(String[] args) {
Set conjunto = new HashSet();
conjunto.add("um");
conjunto.add("dois");
conjunto.add("três");
conjunto.add(“quatro");
conjunto.add(“cinco");
Iterator iteConjunto = conjunto.iterator();
while (iteConjunto.hasNext()) {
System.out.println(iteConjunto.next());
}
}
}
15
Interface S et 
• Métodos
– S ize(): R etorna o número de elementos da 
coleção.
– IsE mpty(): R etorna um booleano indicando se 
a coleção es tá ou não vaz ia.
– Add(O bject obj): Adiciona obj ao conjunto se 
es te não pertencer ao mesmo.
16
Interface L is t
• C oleção ordenada (S equência)
• P ode ter duplicatas
• C ontrole na pos ição de inserção ou 
remoção
• Acesso aos elementos pelo índice
17
Implementações da interface
L is t
• ArrayL is t – (Mais utilizada) oferece tempo constante 
de acesso e de pos icionamento sendo s implesmente 
rápido. B oa quando se deseja recuperar elementos no
array.
• L inkedL ist - Implementação baseada em lis ta 
encadeada. B oa quando se utiliza muita inserção e 
remoção na lis ta.
18
Interface Map
• Mapeamento de chaves em valores
• Não possui chaves duplicadas
• C ada chave leva a somente um elemento
• Implementações de Map
– hashMap
– treeMap
19
Métodos Map
• put(Object key, Object value) – acrescenta
um objeto na lis ta, associando-o a uma 
chave.
• get(Object key) - retorna um objeto 
através de sua chave.
• values () - retorna uma C ollection com os 
valores .
20
E xemplo utilizando Map
21
package com.javaavancado.collection;
import java.util.*;
public class ExemploDeMap {
public static void main(String[] args) {
Map mapa = new HashMap();
mapa.put("um", "Primeiro valor");
mapa.put("dois", "Segundo valor");
mapa.put("tres", "Terceiro valor");
System.out.println("Valor recuperado: " + mapa.get("dois"));
Set chaves = mapa.keySet();
Collection valores = mapa.values();
System.out.println(chaves);
System.out.println(valores);
}
}
E xercícios
• 1) S em utilizar collection, utilize array de 
S tring para imprimir o nome de 4 pessoas . 
Depois utilizando o mesmo código tente 
incluir um novo elemento e o imprima.
22
R esposta
• public c las s L ista {
•
• public s tatic void main (S tring args []) {
• S tring pessoas [] = new S tring[4];
• pessoas[0] = "Dinardo";
• pessoas[1] = "R osa";
• pessoas[2] = "R afael";
• pessoas[3] = "Alex";
• for(int i=0; i < pessoas .length; i++)
• S ystem.out.println(pessoas [i]);
•
• }
• }
23
E mbora funcional, obs erve que não exis te a pos s ibilidade de adicionar mais um nome a 
es s a lis tagem, (partindo da idéia de que a clas s e já es ta compilada) . P ara iss o a 
s olução s eria criar uma nova matriz com um novo tamanho e fazer a trans ferência dos 
elementos de uma para a outra. Veja o exemplo dis s o a s eguir: 
• public c las s L istas {
• public s tatic void main (S tring args[]) {
• S tring pess oas []= new S tring[4];
• pes soas[0] = "Dinardo";
• pes soas[1] = "R osa";
• pes soas[2] = "R afael";
• pes soas[3] = "Alex";
•
• S tring galera[] = new S tring[5];
• for (int i = 0; i < pess oas .length; i++) {
• galera[i] = pess oas [i];
• }
• galera[4] = "Anders on";
• pes soas = galera;
• for(int i=0; i < pes s oas .length; i++)
• Sys tem.out.println(pess oas[i]);
•
• }
• }
24
Implementação Inteligente
A solução mais adequada para res olver noss o problema s eria usar uma das classes do grupo L is t. No 
nosso exemplo usarei a classe ArrayL is t para demonstrar o procedimento.
• import java.util.ArrayL is t;
•
• public c las s L is ta2 {
•
• public s tatic void main(S tring[] args ) {
• ArrayL is t lis ta2 = new ArrayL is t();
• lis ta2.add("Dinardo");
• lis ta2.add("R os a");
• lis ta2.add("R afael");
• lis ta2.add("Alex");
• lis ta2.add("Anderson");
• for (int i = 0; i < lis ta2.s ize(); i++) {
• S ystem.out.println(lis ta2.get(i));
• }
• }
•
• }
25

Outros materiais