Duvida sobre Arraylist  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
igones
Thread.start()

Membro desde: 29/03/2010 17:12:21
Mensagens: 33
Offline

To começando a programar com O.O a poucos dias e meu professor falou assim: "Gente, quem sabe pode usar arraylist tranquilo, mas quem não sabe se vire com array". Ele só vai explicar Arraylist em algumas aulas, então resolvi tentar.

Como faço para adicionar um item na posição x da arraylist?

Olhem meu codigo besta, que simplesmente vai cadastrar nome e telefone quantas vezes a pessoa quiser e depois imprimir (simples, somente pra aprender).


Classe Pessoa


Classe Main..


Quando eu executo o codigo, ta imprimindo 'n' vezes somente o ultimo nome/telefone digitado =/. Alguem sabe aonde esta o erro?

Abraçoss!!
luciano@@
Virtual Machine Man
[Avatar]

Membro desde: 28/04/2010 13:11:27
Mensagens: 527
Localização: Salvador,BA
Offline

O list recebe o elemento por referencia.

Se você preenche um objeto e adiciona no list e depois altera o valor do objeto você também altera o valor do objeto dentro da lista.

se você usar o add duas vezes para o mesmo objeto você terá duas referências para o mesmo objeto.

Tente fazer

list.add(p);

p = new Pessoa()

dessa forma resolve.

This message was edited 1 time. Last update was at 30/04/2010 07:50:05


As pessoas têm algo em comum. Sâo todas diferentes.
FernandoMelo
Thread.start()

Membro desde: 10/01/2008 17:11:01
Mensagens: 37
Localização: Florianópolis
Offline

Um arrayList é um array de objetos, no seu caso um array de pessoa.
Vc não precisa definir a posição em que o objeto vai ficar quando adicionar em uma ArrayList.

Segue





[Email] aim icon [MSN] [ICQ]
arqueiros
JavaBaby
[Avatar]

Membro desde: 17/12/2008 16:04:28
Mensagens: 81
Offline

Quando eu executo o codigo, ta imprimindo 'n' vezes somente o ultimo nome/telefone digitado =/. Alguem sabe aonde esta o erro?


Está aparecendo somente o ultimo por que vc criou apenas um objeto pessoa e está apenas mudando o nome dele perdendo o nome/telefone que estavam antes...

Se ao invés de usar o this e setar o nome/telefone vc deveria criar um novo objeto para cada nome/telefone que digitar e adicionar no arraylist usando o método add..

Ok? precisando de algo eh soh falar

TADS - UNIFIEO
SCJA 1.0
OCJP 6
igones
Thread.start()

Membro desde: 29/03/2010 17:12:21
Mensagens: 33
Offline

Valew, resolvido =DD
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team