SlideShare uma empresa Scribd logo
Collections Framework
Collections
Collections

Collection → Βase da hierarquia. Representa um
grupo de objetos.
List → Mantém a seqüência de inserção. Pode
armazenar elementos duplicados.
Set → Não armazena elementos duplicados.
Map → Relaciona chaves com valores. Não
armazena chaves duplicadas. Cada chave só
está associada a um valor.
Ordenação de Coleções

   Ordenação de coleções pode ser feita com o
    método Collection.sort

   Comparação entre itens
       Método equals()
                  Usado nos métodos contains() das collections
       Interfaces Comparable e Comparator
                  Para implementa-las deve-se definir o método
                    compareTo()
equals(Object obj)

public boolean equals(Object object){
      if (object == null){
          return false;
      }
      if (!(object instanceof Pessoa)){
          return false;
      }
      Pessoa pessoa = (Pessoa)object;
      return pessoa.getCpf().equals(this.cpf);
  }
compareTo()

public int compareTo(ContaPoupanca o) {
    if (this.getNumero() < o.getNumero()) {
        return -1;
    }


    if (this.getNumero() > o.getNumero()) {
        return 1;
    }
    return 0;
}
Generics

   Restringe as listas a um determinado tipo de
    objetos
   Dispensa o uso de casting
   Dá segurança ao código, permitindo inserir na
    lista apenas objeto do tipo especificado
       Exemplo:
                  Sem genérics
                      ContaCorrente cc = new ContaCorrente();
                  Com genérics
                             List<ContaCorrente> contas = new
                                   ArrayList<ContaCorrente>();
java.util.Set

   Não aceita números repetidos
   Não existem métodos que trabalham com
    indices ”get(int)”
   A ordem dos elementos na maioria das vezes
    não é a mesma da inserção dos elementos
   Desempenho nas pesquisas superior as
    implementações de List
java.Util.Set
Exemplo

   Set<String> conjunto = new HashSet<String>();
   conjunto.add("paulo");
   conjunto.add("guilherme");
   conjunto.add("thadeu");
   conjunto.add("cosen");
   conjunto.add("sergio");
   conjunto.add("guilherme"); // repetido!
   // imprime na tela todos os elementos
   System.out.println(conjunto);
Map

   Um mapa é composto por um conjunto de
    associações entre um objeto chave a um objeto
    valor
   Um mapa é muito usado para “indexar” objetos
    de acordo com determinado critério, para
    podermos buscalos rapidamente através desse
    critério
Map
Map
Exemplo

ContaCorrente c1 = new ContaCorrente();
c1.deposita(10000);
ContaCorrente c2 = new ContaCorrente();
c2.deposita(3000);
Map mapaDeContas = new HashMap();
mapaDeContas.put("diretor", c1);
mapaDeContas.put("gerente", c2);
Object elemento = mapaDeContas.get("diretor");
ContaCorrente contaDoDiretor = (ContaCorrente)
elemento;
Exercício (1/2)

 1 - Crie a classe Conta com os seguintes
atributos: int numero, String nome. Essa classe
deve implementar o a interface Comparable,
sendo que a forma de comparação deve ser por
numero.
2 - Crie outra classe que implementará
Comparator e que servirá de comparador de
nome para uma coleções de contas
Exercício (2/2)

1 - Crie uma classe Main que:
  a)Carregue um collection do tipo Arraylist com dez
    contas e imprima o conteúdo da collection.
  b)Ordene a coleção por nome usando a classe que
    implementa Comparator e imprima as contas.
  c)Ordene por número e imprima novamente.
Exercício (Extra)


   Crie uma classe em java que insere 30 mil
    números numa ArrayList e pesquise-os usando
    o método contains. Use o método
    System.currentTimeMillis() para
    cronometrar o tempo gasto.
   Troque a ArrayList por um HashSet e verifique
    o tempo que vai demorar.
Exercício (Extra)

   Gere todos os números entre 1 e 1000 e
    ordene em ordem decrescente utilizando um
    TreeSet.
   Gere todos os números entre 1 e 1000 e
    ordene em ordem decrescente utilizando um
    ArrayList.

Mais conteúdo relacionado

Mais procurados

Heap - Python
Heap - PythonHeap - Python
Heap - Python
Sérgio Souza Costa
 
Noçoes de LINQ
Noçoes de LINQNoçoes de LINQ
Noçoes de LINQ
Fabiano Roman Beraldi
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
Adriano Teixeira de Souza
 
Colecções do c#
Colecções do c#Colecções do c#
Colecções do c#
Gustavo Vieira
 
Haskell aula3 listas
Haskell aula3 listasHaskell aula3 listas
Haskell aula3 listas
CRISLANIO MACEDO
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
Adriano Teixeira de Souza
 
Coleções do c
Coleções do cColeções do c
Coleções do c
daavidinho96
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
CRISLANIO MACEDO
 
Aula Prolog 09 - Listas
Aula Prolog 09 - ListasAula Prolog 09 - Listas
Aula Prolog 09 - Listas
Fabio Moura Pereira
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
Sérgio Souza Costa
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
Adriano Teixeira de Souza
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
Sérgio Souza Costa
 
Lista de inteiros
Lista de inteirosLista de inteiros
Lista de inteiros
Robson Eduardo
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
Adriano Teixeira de Souza
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
Patrick Silva
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
Adriano Teixeira de Souza
 
Revisao1
Revisao1Revisao1
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Listas em C
Listas em CListas em C

Mais procurados (19)

Heap - Python
Heap - PythonHeap - Python
Heap - Python
 
Noçoes de LINQ
Noçoes de LINQNoçoes de LINQ
Noçoes de LINQ
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Colecções do c#
Colecções do c#Colecções do c#
Colecções do c#
 
Haskell aula3 listas
Haskell aula3 listasHaskell aula3 listas
Haskell aula3 listas
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Coleções do c
Coleções do cColeções do c
Coleções do c
 
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesarHaskell aula5 f.ordem-sup_modulos-cifra_cesar
Haskell aula5 f.ordem-sup_modulos-cifra_cesar
 
Aula Prolog 09 - Listas
Aula Prolog 09 - ListasAula Prolog 09 - Listas
Aula Prolog 09 - Listas
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
 
Lista de inteiros
Lista de inteirosLista de inteiros
Lista de inteiros
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Revisao1
Revisao1Revisao1
Revisao1
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Listas em C
Listas em CListas em C
Listas em C
 

Destaque

Seminário - Java Collections
Seminário - Java CollectionsSeminário - Java Collections
Seminário - Java Collections
Ricardo Satin, MSc, ITIL, CSM, PMP
 
Java collections-basic
Java collections-basicJava collections-basic
Java collections-basic
Universidade de São Paulo
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucesso
Bruno Oliveira
 
JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e Lambdas
jesuinoPower
 
[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52
Loiane Groner
 
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Loiane Groner
 
Estrutura de Dados e Algoritmos com Java #01: Introducao
Estrutura de Dados e Algoritmos com Java #01: IntroducaoEstrutura de Dados e Algoritmos com Java #01: Introducao
Estrutura de Dados e Algoritmos com Java #01: Introducao
Loiane Groner
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
Loiane Groner
 

Destaque (8)

Seminário - Java Collections
Seminário - Java CollectionsSeminário - Java Collections
Seminário - Java Collections
 
Java collections-basic
Java collections-basicJava collections-basic
Java collections-basic
 
"Streamizando" com sucesso
"Streamizando" com sucesso"Streamizando" com sucesso
"Streamizando" com sucesso
 
JavaFX 8, Collections e Lambdas
JavaFX 8, Collections e LambdasJavaFX 8, Collections e Lambdas
JavaFX 8, Collections e Lambdas
 
[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52[Curso Java Basico] Exercicios Aulas 47 a 52
[Curso Java Basico] Exercicios Aulas 47 a 52
 
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
Estrutura de Dados e Algoritmos com Java #13-18: Pilhas (Stack)
 
Estrutura de Dados e Algoritmos com Java #01: Introducao
Estrutura de Dados e Algoritmos com Java #01: IntroducaoEstrutura de Dados e Algoritmos com Java #01: Introducao
Estrutura de Dados e Algoritmos com Java #01: Introducao
 
Introducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na praticaIntroducao ao Ionic 2 na pratica
Introducao ao Ionic 2 na pratica
 

Semelhante a Collection Java (2/2)

Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
Regis Magalhães
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
Maurício Linhares
 
Collections Java (1/2)
Collections Java (1/2)Collections Java (1/2)
Collections Java (1/2)
rdgse
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Leonardo Melo Santos
 
Java 14
Java 14Java 14
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
Denis L Presciliano
 
Java8
Java8Java8
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
Natanael Fonseca
 
Aula05
Aula05Aula05
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
Ludimila Monjardim Casagrande
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
Felizardo Charles
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
Gislene Carvalho
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
herbam
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
TV Pernambuco
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
Regis Magalhães
 
Slides collections
Slides collectionsSlides collections
Slides collections
stefanycrispim
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated Query
Dalton Valadares
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
Maurício Linhares
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
Arthur Emanuel
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
Sidney Roberto
 

Semelhante a Collection Java (2/2) (20)

Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Collections Java (1/2)
Collections Java (1/2)Collections Java (1/2)
Collections Java (1/2)
 
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricasCurso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
Curso de OO com C# - Parte 05 - Coleções genéricas e não-genéricas
 
Java 14
Java 14Java 14
Java 14
 
Coleções Propriedade, Resources e Strings
Coleções Propriedade, Resources e StringsColeções Propriedade, Resources e Strings
Coleções Propriedade, Resources e Strings
 
Java8
Java8Java8
Java8
 
Curso Java Básico - Aula 05
Curso Java Básico - Aula 05Curso Java Básico - Aula 05
Curso Java Básico - Aula 05
 
Aula05
Aula05Aula05
Aula05
 
POO - 23 - Coleções da API do Java
POO -  23 - Coleções da API do Java POO -  23 - Coleções da API do Java
POO - 23 - Coleções da API do Java
 
Capítulo 6
Capítulo 6Capítulo 6
Capítulo 6
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 
4234 mysql
4234 mysql4234 mysql
4234 mysql
 
Trabalho vetores
Trabalho vetoresTrabalho vetores
Trabalho vetores
 
Java 06 Strings Arrays
Java 06 Strings ArraysJava 06 Strings Arrays
Java 06 Strings Arrays
 
Slides collections
Slides collectionsSlides collections
Slides collections
 
LINQ - Language Integrated Query
LINQ - Language Integrated QueryLINQ - Language Integrated Query
LINQ - Language Integrated Query
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Java: Collections
Java: CollectionsJava: Collections
Java: Collections
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
 

Collection Java (2/2)

  • 3. Collections Collection → Βase da hierarquia. Representa um grupo de objetos. List → Mantém a seqüência de inserção. Pode armazenar elementos duplicados. Set → Não armazena elementos duplicados. Map → Relaciona chaves com valores. Não armazena chaves duplicadas. Cada chave só está associada a um valor.
  • 4. Ordenação de Coleções  Ordenação de coleções pode ser feita com o método Collection.sort  Comparação entre itens  Método equals()  Usado nos métodos contains() das collections  Interfaces Comparable e Comparator  Para implementa-las deve-se definir o método compareTo()
  • 5. equals(Object obj) public boolean equals(Object object){ if (object == null){ return false; } if (!(object instanceof Pessoa)){ return false; } Pessoa pessoa = (Pessoa)object; return pessoa.getCpf().equals(this.cpf); }
  • 6. compareTo() public int compareTo(ContaPoupanca o) { if (this.getNumero() < o.getNumero()) { return -1; } if (this.getNumero() > o.getNumero()) { return 1; } return 0; }
  • 7. Generics  Restringe as listas a um determinado tipo de objetos  Dispensa o uso de casting  Dá segurança ao código, permitindo inserir na lista apenas objeto do tipo especificado  Exemplo:  Sem genérics ContaCorrente cc = new ContaCorrente();  Com genérics List<ContaCorrente> contas = new ArrayList<ContaCorrente>();
  • 8. java.util.Set  Não aceita números repetidos  Não existem métodos que trabalham com indices ”get(int)”  A ordem dos elementos na maioria das vezes não é a mesma da inserção dos elementos  Desempenho nas pesquisas superior as implementações de List
  • 10. Exemplo  Set<String> conjunto = new HashSet<String>();  conjunto.add("paulo");  conjunto.add("guilherme");  conjunto.add("thadeu");  conjunto.add("cosen");  conjunto.add("sergio");  conjunto.add("guilherme"); // repetido!  // imprime na tela todos os elementos  System.out.println(conjunto);
  • 11. Map  Um mapa é composto por um conjunto de associações entre um objeto chave a um objeto valor  Um mapa é muito usado para “indexar” objetos de acordo com determinado critério, para podermos buscalos rapidamente através desse critério
  • 12. Map
  • 13. Map
  • 14. Exemplo ContaCorrente c1 = new ContaCorrente(); c1.deposita(10000); ContaCorrente c2 = new ContaCorrente(); c2.deposita(3000); Map mapaDeContas = new HashMap(); mapaDeContas.put("diretor", c1); mapaDeContas.put("gerente", c2); Object elemento = mapaDeContas.get("diretor"); ContaCorrente contaDoDiretor = (ContaCorrente) elemento;
  • 15. Exercício (1/2) 1 - Crie a classe Conta com os seguintes atributos: int numero, String nome. Essa classe deve implementar o a interface Comparable, sendo que a forma de comparação deve ser por numero. 2 - Crie outra classe que implementará Comparator e que servirá de comparador de nome para uma coleções de contas
  • 16. Exercício (2/2) 1 - Crie uma classe Main que: a)Carregue um collection do tipo Arraylist com dez contas e imprima o conteúdo da collection. b)Ordene a coleção por nome usando a classe que implementa Comparator e imprima as contas. c)Ordene por número e imprima novamente.
  • 17. Exercício (Extra)  Crie uma classe em java que insere 30 mil números numa ArrayList e pesquise-os usando o método contains. Use o método System.currentTimeMillis() para cronometrar o tempo gasto.  Troque a ArrayList por um HashSet e verifique o tempo que vai demorar.
  • 18. Exercício (Extra)  Gere todos os números entre 1 e 1000 e ordene em ordem decrescente utilizando um TreeSet.  Gere todos os números entre 1 e 1000 e ordene em ordem decrescente utilizando um ArrayList.