Java Coleções

5,322 views
5,261 views

Published on

Material sobre Coleções em Java

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,322
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
57
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Java Coleções

  1. 1. ColeçõesMario Jorge Pereira
  2. 2. ColeçõesMario Jorge Pereiramariojp@gmail.comTwitter @mariojp
  3. 3. Conceito• Uma coleção é uma estrutura de dados que permitearmazenar 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çõesvariam mas normalmente incluem:– Adição de elementos– Remoção de elementos– Acesso aos elementos– Pesquisa de elementos– Indagar sobre atributos
  4. 4. Tipos de Coleções• Dependendo da forma de fazer as 4 operaçõesbásicas (adição, remoção, acesso e pesquisa), teremosvários tipos de coleções– Certas operações poderão ter um desempenho melhor oupior dependendo do tipo de coleção– Certas operações poderão ter restrições oufuncionalidade 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)
  5. 5. Listas (List)• Uma lista é uma coleção de elementos arrumadosnuma ordem linear, isto é, onde cada elemento tem umantecessor (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
  6. 6. Conjuntos• Um conjunto é uma coleção que não possui elementosduplicados (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
  7. 7. Mapas (Map)• Um mapa armazena pares (chave, valor) chamadositens. 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á nacoleção– Obter o número de elementos
  8. 8. Coleções em Java Hierarquia de interfacesfornecidas pelo Java• O Map não é uma Collection mas podemos obter uma"visão de Collection" com todas as chaves ou comtodos os valores .Collection MapSortedMapSetListSortedSet
  9. 9. 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()
  10. 10. 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)
  11. 11. 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()
  12. 12. Hierarquia de classes e interfaces deCollectionObjectAbstractCollectionAbstractList AbstractS etLinkedList ArrayList VectorAbstractS equentialListCollectionHashSet TreeSetSetSortedSetList
  13. 13. Hierarquia de classes e interfaces de MapObjectAbstractMapHashMap TreeMapMapHashTable SortedMap
  14. 14. Desafio• Leia um arquivo contendo linhas com dois camposseparados 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 é achave, o segundo campo é a valor• Leia um segundo arquivo linha por linha e pesquise secada linha está na coleção, imprimindo quantoselementos foram descobertos• Mais detalhes e dicas no PDF Desafio com coleções.
  15. 15. Regras básicas para escolher entrecoleçõ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ãousa chaves, use Conjunto– Se sua aplicação não precisar manter duplicatas e usachaves, use Mapa
  16. 16. Regras básicas para escolher entrecoleções• Se escolheu uma Lista– Use Vector se acessar por índice for comum– Use LinkedList se inserir ou remover elementos domeio 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
  17. 17. Formas de percorrer uma Coleçãofor(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
  18. 18. Referências• Core Java - Vol. 1 - Fundamentos - 8ª Ed. 2010Autor: Cornell, Gary; Horstmann, Cay S.Editora: Pearson Education – BrI.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

×