Collections I
Arrays

●   Problematicos?
●   Tamanho pré-definido
●   Não redimensionaveis
●   Procurar um elemento sem saber o seu indice
●   Quantas posições já foram populadas
Collections

●   Pacote java.util
●   Classes e interfaces
●   Estruturas de dados avançadas
●   Resolver problemas comuns de maneira simples
●   Não reinventar a roda
Visão Geral

●   Listas: java.util.List
          ●   java.util.ArrayList
          ●   java.util.LinkedList
          ●   java.util.Vector
●   Conjuntos: java.util.Set
          ●   java.util.HashSet
          ●   java.util.LinkedHashSet
          ●   java.util.TreeSet
Visão Geral

●   Listas: java.util.Map
         ●   java.util.HashMap
         ●   java.util.TreeMap
         ●   java.util.Hashtable
Listas

●   Listas: java.util.List
●   É uma coleção que permite elementos duplicados e
    mantém uma ordenação específica entre os elementos.
●   Resolve problemas em relação ao array (busca, remoção,
    tamanho “infinito”, …)
●   Diversas implementações disponíveis, com formas
    diferentes de representar uma lista
ArrayList

●   java.util.ArrayList implements java.util.List
●   Implementação mais utilizada
●   Trabalha com um array interno para gerar uma lista
●   Rápida em executar buscas
●   ArrayList não é um array
ArrayList

●   Criar uma lista
    ArrayList lista = new ArrayList()
●   Também pode ser feito pela interface List
    List lista = new ArrayList()
●   Adicionar elementos
    lista.add(“Primeiro”)
    lista.add(2)
ArrayList

●   Total elementos de uma lista
    System.out.println(lista.size())
●   Iterar sobre uma lista
    for (int i = 0; i < lista.size(); i++) {
        System.out.println(lista.get(i))
    }
●   Outros metodos como: remove, contains, set, subList
Outras implementações de List

●   java.util.LinkedList implements java.util.List
●   Outra implementação de java.util.List, bem parecida com
    ArrayList, porém mais performatica na inserção e remoção
    de itens nas pontas da lista


●   java.util.Vector implements java.util.List
●   Implementação presente desde a versão 1.0, funcionalidade
    bastante parecida com o ArrayList
●   Pensada para ser executada em ambientes concorrentes
●   Perda de performance em ambientes não concorrentes
Outras implementações de List

●   Visão da Interface java.util.List e suas principais
    implementações
Ordenação

●   java.util.Collections.sort()
    List lista = new ArrayList();
    lista.add(“Thiago”);
    lista.add(“Guilherme”);
    lista.add(“Pedro”);
    System.out.println(lista)
    Collections.sort(lista)
    System.out.println(lista)
Comparando

●   Objetos precisam ser comparaveis
●   Para o funcionamento do sort, existe um criterio de
    comparação que deve ser especificado
●   Entra em ação a interface java.lang.Comparable
●   Para poderem ser ordenados, os objetos devem
    implementar a interface Comparable e sobrescrever o
    metodo compareTo()
Outros métodos de Collections

●   binarySearch(List, Object)
●   max(Collection)
●   min(Collection)
●   reverse(List)
●   Entre outros


●   Relembrando a classe utilitaria de array, a java.util.Arrays
Duvidas?

8 collections-i

  • 1.
  • 2.
    Arrays ● Problematicos? ● Tamanho pré-definido ● Não redimensionaveis ● Procurar um elemento sem saber o seu indice ● Quantas posições já foram populadas
  • 3.
    Collections ● Pacote java.util ● Classes e interfaces ● Estruturas de dados avançadas ● Resolver problemas comuns de maneira simples ● Não reinventar a roda
  • 4.
    Visão Geral ● Listas: java.util.List ● java.util.ArrayList ● java.util.LinkedList ● java.util.Vector ● Conjuntos: java.util.Set ● java.util.HashSet ● java.util.LinkedHashSet ● java.util.TreeSet
  • 5.
    Visão Geral ● Listas: java.util.Map ● java.util.HashMap ● java.util.TreeMap ● java.util.Hashtable
  • 6.
    Listas ● Listas: java.util.List ● É uma coleção que permite elementos duplicados e mantém uma ordenação específica entre os elementos. ● Resolve problemas em relação ao array (busca, remoção, tamanho “infinito”, …) ● Diversas implementações disponíveis, com formas diferentes de representar uma lista
  • 7.
    ArrayList ● java.util.ArrayList implements java.util.List ● Implementação mais utilizada ● Trabalha com um array interno para gerar uma lista ● Rápida em executar buscas ● ArrayList não é um array
  • 8.
    ArrayList ● Criar uma lista ArrayList lista = new ArrayList() ● Também pode ser feito pela interface List List lista = new ArrayList() ● Adicionar elementos lista.add(“Primeiro”) lista.add(2)
  • 9.
    ArrayList ● Total elementos de uma lista System.out.println(lista.size()) ● Iterar sobre uma lista for (int i = 0; i < lista.size(); i++) { System.out.println(lista.get(i)) } ● Outros metodos como: remove, contains, set, subList
  • 10.
    Outras implementações deList ● java.util.LinkedList implements java.util.List ● Outra implementação de java.util.List, bem parecida com ArrayList, porém mais performatica na inserção e remoção de itens nas pontas da lista ● java.util.Vector implements java.util.List ● Implementação presente desde a versão 1.0, funcionalidade bastante parecida com o ArrayList ● Pensada para ser executada em ambientes concorrentes ● Perda de performance em ambientes não concorrentes
  • 11.
    Outras implementações deList ● Visão da Interface java.util.List e suas principais implementações
  • 12.
    Ordenação ● java.util.Collections.sort() List lista = new ArrayList(); lista.add(“Thiago”); lista.add(“Guilherme”); lista.add(“Pedro”); System.out.println(lista) Collections.sort(lista) System.out.println(lista)
  • 13.
    Comparando ● Objetos precisam ser comparaveis ● Para o funcionamento do sort, existe um criterio de comparação que deve ser especificado ● Entra em ação a interface java.lang.Comparable ● Para poderem ser ordenados, os objetos devem implementar a interface Comparable e sobrescrever o metodo compareTo()
  • 14.
    Outros métodos deCollections ● binarySearch(List, Object) ● max(Collection) ● min(Collection) ● reverse(List) ● Entre outros ● Relembrando a classe utilitaria de array, a java.util.Arrays
  • 15.