Download - Java Coleções
![Page 1: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/1.jpg)
Coleções
Mario Jorge Pereira
![Page 3: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/3.jpg)
Conceito
• Uma coleção é uma estrutura de dados que permite armazenar vários objetos• A coleção é, em si, um objeto também– Um objeto de agregação• As operações que podem ser feitas em coleções
variam mas normalmente incluem:– Adição de elementos– Remoção de elementos– Acesso aos elementos– Pesquisa de elementos– Indagar sobre atributos
![Page 4: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/4.jpg)
Tipos de Coleções
• Dependendo da forma de fazer as 4 operações básicas (adição, remoção, acesso e pesquisa), teremos vários tipos de coleções– Certas operações poderão ter um desempenho melhor ou
pior dependendo do tipo de coleção– Certas operações poderão ter restrições ou
funcionalidade especial dependendo do tipo de coleção• Os três grandes grupos de coleções são:– A lista (List)– O conjunto (Set)– O mapa (Map)
![Page 5: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/5.jpg)
Listas (List)
• Uma lista é uma coleção de elementos arrumados numa ordem linear, isto é, onde cada elemento tem um antecessor (exceto o primeiro) e um sucessor (exceto o último)• Operações mais importantes:– Adicionar um objeto em qualquer lugar da lista– Remover um objeto presente em qualquer lugar da lista– Obter o elemento de qualquer posição da lista– Iterar sobre os elementos– Descobrir se um certo elemento está na lista– Descobrir o índice de um certo elemento na lista– Obter o número de elementos da coleção
![Page 6: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/6.jpg)
Conjuntos
• Um conjunto é uma coleção que não possui elementos duplicados (descarta duplicações)• Operações mais importantes: – Adicionar um objeto no conjunto– Remover um objeto presente no conjunto– Iterar sobre os elementos– Descobrir se um certo elemento está na coleção– Obter o número de elementos
![Page 7: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/7.jpg)
Mapas (Map)
• Um mapa armazena pares (chave, valor) chamados itens. Chaves e valores podem ser de qualquer tipo.• Operações mais importantes:– Adicionar um item no mapa (fornecendo chave e valor)– Remover um item com chave dada– Iterar sobre os itens– Descobrir se um elemento com chave dada está na
coleção– Obter o número de elementos
![Page 8: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/8.jpg)
Coleções em Java Hierarquia de interfaces fornecidas pelo Java
• O Map não é uma Collection mas podemos obter uma "visão de Collection" com todas as chaves ou com todos os valores .
Collection Map
SortedMapSetList
SortedSet
![Page 9: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/9.jpg)
Métodos das coleções
• Collection, Set, HashSet e TreeSet:– Adição:• add(Object elemento)
– Remoção • remove(Object elemento)
• clear()
– Acesso• iterator()
– Pesquisa• contains(Object elemento)
– Atributos• size()
![Page 10: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/10.jpg)
Métodos das coleções
• List, Vector, ArrayList e LinkedList – Adição• add(int index, Object elemento)
– Remoção• remove(int index)
– Acesso• get(int index)
• ListIterator() (iterador que pode andar para trás)
– Pesquisa• indexOf(Object elemento)
![Page 11: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/11.jpg)
Métodos das coleções
• Map, HashMap, TreeMap– Adição• put(Object key, Object value)
– Remoção• remove(Object key)• clear()
– Acesso• get(Object key) (também é "pesquisa")• entrySet() (retorna os itens como conjunto - Set)• KeySet() (retorna as chaves como conjunto - Set)• Values() (retorna os valores como Collection)
– Pesquisa• get(Object key) (também é "acesso")
– Atributos • size()
![Page 12: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/12.jpg)
Hierarquia de classes e interfaces de Collection
Object
Abs tractCollection
Abs tractLis t Abs tractS e t
LinkedList ArrayList Vector
Abs tractS equentialLis t
Collection
HashSet TreeSet
Set
SortedSet
List
![Page 13: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/13.jpg)
Hierarquia de classes e interfaces de Map
Object
AbstractMap
HashMap TreeMap
Map
HashTable SortedMap
![Page 14: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/14.jpg)
Desafio
• Leia um arquivo contendo linhas com dois campos separados por ":"– Exemplo de linha:• hfxtncscnzmd:pngtrhpeqmtjcstxdouof
– Insira cada linha como uma String emuma coleção• Se a coleção for do tipo Map, o primeiro campo é a
chave, o segundo campo é a valor
• Leia um segundo arquivo linha por linha e pesquise se cada linha está na coleção, imprimindo quantos elementos foram descobertos• Mais detalhes e dicas no PDF Desafio com coleções.
![Page 15: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/15.jpg)
Regras básicas para escolher entre coleções
• Decida aplicação dita se você vai precisar de Lista, Conjunto ou Mapa?– Se sua aplicação precisar manter duplicatas, use Lista• Se precisar fazer muita pesquisa, fuja da lista!
– Se sua aplicação não precisar manter duplicatas e não usa chaves, use Conjunto– Se sua aplicação não precisar manter duplicatas e usa
chaves, use Mapa
![Page 16: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/16.jpg)
Regras básicas para escolher entre coleções
• Se escolheu uma Lista– Use Vector se acessar por índice for comum– Use LinkedList se inserir ou remover elementos do
meio com freqüência• Se escolheu um Conjunto– Use HashSet se não precisar de um conjunto ordenado– Use TreeSet se precisar de um conjunto ordenado• Se escolheu de um Mapa– Use HashMap se não precisar de um mapa ordenado– Use TreeMap se precisar de um mapa ordenado
![Page 17: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/17.jpg)
Formas de percorrer uma Coleção
for(Iterator it = <colecao>.iterator() ;it.hasNext() ; ){ <Tipo> <referencia> (<Tipo>) it.next();
}
Iterator it = <colecao>.iterator();while (it.hasNext()){<Tipo> <referencia> (<Tipo>) it.next();
}
for( <Tipo> <referencia> : <coleção> ) { usar a <referencia>;} //JAVA 1.5
![Page 18: Java Coleções](https://reader038.vdocuments.com.br/reader038/viewer/2022100506/5549d432b4c905856d8b501d/html5/thumbnails/18.jpg)
Referências
• Core Java - Vol. 1 - Fundamentos - 8ª Ed. 2010 Autor: Cornell, Gary; Horstmann, Cay S. Editora: Pearson Education – Br I.S.B.N.: 9788576053576• Prof Dr. Jacques Philippe Sauvé
(<http://www.dsc.ufcg.edu.br/~jacques>) • Argonavis (<www.argonavis.com.br>) • Mario Jorge Pereira (<www.mariojp.com.br>)
Notas de Aula