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?

9 collections-ii

  • 1.
  • 2.
  • 3.
    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
  • 4.
    Unicidade ● Utilidade da unicidade ● Identificação (impressão digital, iris) ● Cores ● Paises ● Vocabulario ● Simbologia
  • 5.
    HashSet ● java.util.HashSet implements java.util.Set ● Elementos únicos ● Rápida em executar buscas ● Não mantém a ordem dos elementos
  • 6.
    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)
  • 7.
    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
  • 8.
    Outros métodos deSet ● 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))
  • 9.
    Outras implementações deSet ● 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
  • 10.
    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.
  • 11.
    HashMap ● java.util.HashMap implements java.util.Map ● Chaves únicas ● Não mantém a ordem das chaves
  • 12.
    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”)
  • 13.
    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
  • 14.
    Outras implementações deMap ● 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
  • 15.
    Visão Geral deCollections
  • 16.
    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
  • 17.
    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
  • 18.