Java Coleções

18

Click here to load reader

description

Material sobre Coleções em Java

Transcript of Java Coleções

Page 1: Java Coleções

Coleções

Mario Jorge Pereira

Page 2: Java Coleções

Coleções

Mario Jorge [email protected] Twitter @mariojp

Page 3: Java Coleções

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

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

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

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

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

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

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

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

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

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

Hierarquia de classes e interfaces de Map

Object

AbstractMap

HashMap TreeMap

Map

HashTable SortedMap

Page 14: Java Coleções

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

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

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

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

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