Generics em ArrayList X HashMap
maio 9, 2007 at 4:29 pm 1 comentário
Usarei dois exemplos basicos para a comparação de ArrayList e HashMap.
A classe Aluno abaixo será usada para instanciarmos alguns objetos.
public Class Aluno {
private String nome;
private String fone;
Aluno(String _nome){
this.nome = _nome;
}
public String getNome(){
return this.nome;
}
}
ArrayList
Em outra class podemos usar o ArrayList da seguinte forma:
1 ArrayList<Aluno> alunos = new ArrayList<Aluno>();
2
3 Aluno a = new Aluno(“YRoss”,”85 99887755″);
4 alunos.add( a );
5
6 Aluno x = alunos.get( 0 );
7 System.out.println(“Nome: “+ x.getNome() );
Observe o código acima e perceba que na linha 6 não foi preciso realizar um “casting” para converter o objeto retirado da coleção. O mesmo havia sido armazenado internamente como um objeto Aluno e não como sendo do tipo “Object”.
Note que usei o metodo add() para adicionar um elemento ao ArrayList alunos. Logo abaixo linha 6 usamos x para fazer refenrência ao retorno do metodo get(), que como foi citado acima retorna um Objeto do tipo Aluno.
Mas onde esta generico?
Na linha 1 temos <Aluno>, é nesse momentos que informamos ao ArrayList que armazenaremos um formato generico, em nosso caso objetos da Classe Aluno, ou herdeiros de Aluno.
HashMap
1 HashMap<String, Aluno> hash = new HashMap<String, Aluno>();
2 Aluno a = new Aluno(“YRoss”,”34913491″ );
3 hash.put(a.getNome(), a);
Linha 1: Cria HashMap e informamos que usaremos um objeto String como chave, e armazenaremos no elemento um objeto do tipo Aluno.
Linha 2: Cria uma referencia ao novo objeto do tipo aluno, passando nome e telefone.
linha3: Adiciona um elemento ao HashMap. Observe que o metodo put(), diferente do metodo add() de ArrayList, recebe dois argumentos, uma chave do tipo String e um objeto do tipo Aluno. Para a String passei o proprio nome(a.getNome()) do aluno e para o objeto passei a.
Arraylist = busca ordenada, ordem natural de inserção.
HashMap = busca por chave;
Agora dependendo da necessidade escolha o que achar melhor.
Entry filed under: API. Tags: .
1 Comentário Add your own
Deixe uma resposta
Enviar trackback para este post | Subscribe to the comments via RSS Feed
1.
Tojo | setembro 18, 2008 às 7:12 pm
Bala… Explicou legal, sem muita bobeira…
=)