O documento descreve as principais coleções do framework Collections do Java, incluindo List, Set, Map e suas funcionalidades, como manter ordem de inserção, não permitir elementos duplicados e relacionar chaves e valores. Também apresenta exemplos de uso e exercícios sobre essas coleções.
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);
}
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
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.