Generics em ArrayList X HashMap

Maio 9, 2007

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. .

1 Comment Add your own

  • 1. Tojo  |  Setembro 18, 2008 at 7:12 pm

    Bala… Explicou legal, sem muita bobeira…

    =)

    Responder

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Tópicos recentes

Categorias

Arquivos

Blogroll

 

Maio 2007
S T Q Q S S D
     
 123456
78910111213
14151617181920
21222324252627
28293031  

Blog Stats