9 collections-ii

18
Collections II

Upload: thiago-oliveira

Post on 21-Jul-2015

236 views

Category:

Education


0 download

TRANSCRIPT

Collections II

Conjuntos

Conjuntos

● Conjutos: java.util.Set

● É uma coleção que permite não tem elementos duplicados e não necessariamente mantém uma ordenação específica entre os elementos.

● Diversas implementações disponíveis, com formas diferentes de representar um conjunto

Unicidade

● Utilidade da unicidade

● Identificação (impressão digital, iris)

● Cores

● Paises

● Vocabulario

● Simbologia

HashSet

● java.util.HashSet implements java.util.Set

● Elementos únicos

● Rápida em executar buscas

● Não mantém a ordem dos elementos

HashSet

● Criar um conjunto

HashSet conj = new HashSet()

● Também pode ser feito pela interface Set

Set conj = new HashSet()

● Adicionar elementos

conj.add(“Primeiro”)

conj.add(2)

HashSet

● Total elementos de um conjunto

System.out.println(conj.size())

● Iterar sobre um conjunto

for (Object o : conj) {

System.out.println(conj)

}

● Outros métodos como contains, remove, addAll

● Diferentemente de List, não tem o método get

Outros métodos de Set

● Métodos de conjuntos

● A contém B? (a.containsAll(b))

● A união B? (a.addAll(b))

● A interseção B? (a.retainAll(b))

● Existe em A e não em B? (a.removeAll(b))

Outras implementações de Set

● java.util.LinkedHashSet implements java.util.Set

● Diferente de HashSet, essa implementação mantém a ordem de inserção dos elementos

● java.util.TreeSet implements java.util.Set

● Diferente de HashSet, essa implementação já ordena seus elementos no momento da inserção, se a classe inserida implementar a interface Comparable

Mapas

● Mapas: java.util.Map

● É um conjunto de associações entre um objeto chave e um objeto valor, onde as chaves, assim como os conjuntos são formadas por valores únicos.

HashMap

● java.util.HashMap implements java.util.Map

● Chaves únicas

● Não mantém a ordem das chaves

HashMap

● Criar um mapa

HashMap mapa = new HashMap()

● Também pode ser feito pela interface Set

Map mapa = new HashMap()

● Adicionar elementos

mapa.put(“nome”, “Thiago”)

mapa.put(“empresa”, “Astux”)

HashMap

● Total elementos de um mapa

System.out.println(mapa.size())

● Iterar sobre um conjunto

for (Object o : mapa.keySet()) {

System.out.println(mapa.get(o))

}

● keySet() retorna um Set com as chaves do mapa

● values() retorna um List contendo todos os valores do mapa

Outras implementações de Map

● java.util.LinkedHashMap implements java.util.Map

● Diferente de HashMap, essa implementação mantém a ordem de inserção das chaves

● java.util.TreeMap implements java.util.Map

● Diferente de HashSet, essa implementação já ordena suas chaves no momento da inserção, se a classe inserida implementar a interface Comparable

Visão Geral de Collections

hashCode

● Muitas coleções usam tabelas hash em suas implementações.

● Para buscas mais eficientes

● Funciona como uma agenda telefonica onde o indice é o hashCode

Generics

● Geralmente uma lista com objetos diferentes não é interessante.

● Generics são usados para forçar o uso de uma determinada classe (ou alguma subclasse dela) em uma coleção

● Principal vantagem é evitar o uso constante de castings

Duvidas?