Você está na página 1de 20

Colees

AAPIdeColeesdoJava

Colees
comum usarmos um objeto que armazene vrios outros
Agenda um exemplo

API Collections forneces interfaces e classes para colees


pacote java.util

Uma coleo um objeto que agrupa vrios outros


Tambm chamado continer

Interface Collection
2

Interfaces
MapeSortedMap armazenampares (chave,valor)de Elementos.

AAPIoferecealgunstiposdecolees:conjuntos,listasemapas.
Conjunto(SeteSortedSet)
umacoleodeelementosquenomantmumaordemnemumacontagemdos elementos Cadaelementoouestnoconjuntoouno(nohelementosrepetidos)

Lista(List)
umaseqnciadeelementos mantmdadosarespeitodeambos,aordemeacontagem. Fila(Queue) Filadeelementos ModeloFIFO(Firstin,firstout) Mapa(MapeSortedMap) umaassociaoentrechavesevalores elemantmumconjuntodechavesemapeiacadachaveparaumnicovalor. 3

Colees
AAPIorganizasuasclassesdaseguinteforma: Umahierarquiadeinterfaces asespecificaesdosvriostipos Umahierarquiadeimplementaodeclasses

Collection
araizdahierarquiaCollection Representaumgrupodeobjetosconhecidoscomo seuselementos Contmodenominadorcomumdoquetodasas coleesimplementam Usadaparapassagemdecoleescomoparmetrose paramanipulaogenricadegruposdedados. AplataformaJavanoforneceimplementaodireta destainterface Implementaessodesuassubinterfaces Possuimtodosparaacessar,buscareremover elementos
5

Collection
public interface Collection<E> extends Iterable<E> { //Operaes bsicas int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); boolean remove(Object element); Iterator iterator(); //Operaes na coleo boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); boolean removeAll(Collection<?> c); boolean retainAll(Collection<?> c); void clear(); //Operaes de arrays Object[] toArray(); <T> T[] toArray(T[] a);

Set
Umconjuntoumacoleoquenotemelementos duplicados. Podemsermantidosordenados(SortedSet)ouno. Modelaaabstraomatemticaparaconjuntos. ContmosmesmosmtodosdeCollection Comarestriodequenopodemserrepetidos Trsimplementaes HashSet Implementadocomtabelahash TreeSet Implementadocomrvore LinkedHashSet Implementadocomtabelahashelistasligadas

Set
public static void main(String[] args) { Set<String> nomes = new HashSet<String>(); nomes.add("Joao"); nomes.add("Jose"); nomes.add("Maria"); nomes.add("Bianca"); System.out.println("Qtd elementos: "+nomes.size()); if (nomes.contains("Maria")) System.out.println("Contm Maria"); }

Genricos Ao ser criado, informamos o tipo (classe) do elemento a ser armazenado na coleo
HashSet<String> nomes = new HashSet<String>() Isto porque a coleo implementada com tipos genricos, onde o tipo determinado no momento da execuo
8

Percorrendo
Duas forma de percorrer colees
No sabe-se sobre a implementao Mtodos boolean hasNext() - informa se ainda h elementos a serem visitados <T> next() - retorna o prximo elemento a ser visitado

Iterator Objeto que permite que todos os elementos da coleo sejam acessados

for-each

implementado usando o iterator construo da linguagem JAVA for (Tipo objeto: Coleo) Exemplo for (String nome: nomes) { ... }

Exemplo
Comforeach:
public static void main(String[] args) { Collection<String> nomes = new HashSet<String>(); ... System.out.println("Qtd elementos: "+nomes.size()); for (String string : nomes) { System.out.println(string); } }

Comiterator:
public static void main(String[] args) { Collection<String> nomes = new TreeSet<String>(); ... System.out.println("Qtd elementos: "+nomes.size()); Iterator<String> iterator = nomes.iterator(); while (iterator.hasNext()){ System.out.println(iterator.next()); } }

10

List
umaCollectionordenada(algumasvezeschamada deseqncia) Podemconterelementosduplicados EmadioasoperaesdeCollection,inclue:
Acessoposicional manipulaelementosbaseadonasuaposionumricana lista(ndice) Pesquisa Pesquisaporumobjetoespecficonalistaeretornaasua posionumrica. Iterao HerdaasemnticaIteratorparatomarvantagemda naturezasequencialdalista.
11

List
Duas implementaes
ArrayList List implementada com Array LinkedList List implementada com lista ligada get(int i) retorna elemento no ndice i remove(int i) remove elemento no ndice i e fasta os elementos para preencher o espao deixado add(<T> elemento) Adiciona elemento depois do ltimo ndice Elementos comeam no ndice zero
12

Mtodos de acesso atravs de ndice

List
Cadaelementotemoseusucessor(menosoltimo)e oseuantecessor(menosoprimeiro). Asoperaesmaisimportantesemlistasso: Adicionarumobjetoemqualquerlugardalista; Removerumobjetodequalquerlugardalista; Obteroelementodequalquerlugardalista; Percorreroselementosdalista; Verificarseumelementoestnalista; Descobrirondicedeumelementonalista; Obteronmerodeelementosdacoleo.
13

Exemplo
public static void main(String[] args) { ArrayList<String> nomes = new ArrayList<String>(); nomes.add("Joo"); nomes.add("Jos"); nomes.add("Maria"); nomes.add("Bianca"); System.out.println("Qtd elementos: "+nomes.size()); String string = nomes.get(3); System.out.println(string); }

14

Interface Map
Ummapaarmazenapares(chave,valor)chamadosde itens. Chavesevalorespodemserdequalquertipo. Aschavesarmazenadasnosmapaspodemestar ordenadasouno. Achaveutilizadaparaacharoelementodeforma rpida,utilizandoestruturasespeciais. Ummapanopodeconterchavesduplicadas Modelaaabstraomatemticadefuno. Noexistemchavesduplicadasemummapa Tambmsoconhecidoscomodicionrios
15

Interface Map
Asoperaesmaisimportantesemmapasso: Adicionarumitemnomapa,fornecendochavee valor; Removerumitembaseadoemumachave; Percorrerositensdacoleo; Verificarseumitemestnacoleo,fornecendoa chave; Obteronmerodeelementosdacoleo.

16

Interface Map
AplataformaJavacontmtrsimplementaesMap depropsitogeral. HashMap,TreeMapeLinkedHashMap Ocomportamentoeaperformancesoanlogosao deHashSet,TreeSeteLinkedHashSet. Principaismtodos put(chave,valor) Colocaparchave/elementonomapa get(chave) retornaovalorcorrespondenteachavepassada comoparmetro

17

Exemplo
public static void main(String[] args) { HashMap<String,String> nomes = new HashMap<String,String>(); nomes.put("joao", "Joao Da Silva"); nomes.put("jose", "Jose Matos"); nomes.put("maria", "Maria das Dores"); nomes.put("bianca","Bianca Patrcia"); System.out.println("Qtd elementos: "+nomes.size()); String nome = nomes.get("maria"); System.out.println(nome); }

18

Dvidas

? ?? ? ?? ? ?? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ?? ? ? ?? ? ? ? ? ?? ? ?? ? ?? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ??? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

19

Exerccios
Defina a Agenda como Interface e: Implemente 3 verses diferentes da agenda Com ArrayList Com HashSet Com TreeSet Reimplemente as classes Banco e Agencia Na classe Banco A coleo de Agencias deve ser implementada com um HashMap, onde a chave o nmero da Agencia A coleo de Contas de uma Agencia deve ser implementada com com TreeMap, onde a chave o nmero da conta

20

Você também pode gostar