collection java (2/2)

18
Collections Framework

Upload: rdgse

Post on 10-Nov-2014

3.345 views

Category:

Technology


1 download

DESCRIPTION

Introdução a Java Collection

TRANSCRIPT

Page 1: Collection Java (2/2)

Collections Framework

Page 2: Collection Java (2/2)

Collections

Page 3: Collection Java (2/2)

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.

Page 4: Collection Java (2/2)

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()

Page 5: Collection Java (2/2)

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);

}

Page 6: Collection Java (2/2)

compareTo()

public int compareTo(ContaPoupanca o) {

if (this.getNumero() < o.getNumero()) {

return -1;

}

if (this.getNumero() > o.getNumero()) {

return 1;

}

return 0;

}

Page 7: Collection Java (2/2)

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>();

Page 8: Collection Java (2/2)

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

Page 9: Collection Java (2/2)

java.Util.Set

Page 10: Collection Java (2/2)

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);

Page 11: Collection Java (2/2)

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

Page 12: Collection Java (2/2)

Map

Page 13: Collection Java (2/2)

Map

Page 14: Collection Java (2/2)

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;

Page 15: Collection Java (2/2)

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

Page 16: Collection Java (2/2)

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.

Page 17: Collection Java (2/2)

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.

Page 18: Collection Java (2/2)

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.