Olá pessoal, este é meu primeiro post e preciso de uma ajuda básica, do mesmo jeito que espero poder ajudar iniciantes iguais a mim.
Estou tentando simular uma agenda usando LinkedList, e atrávez de um código eu pego o elemento da LinkedList, mas mesmo que eu tenho uma lista com 3 ou mais objetos do tipo Dados com Nome, Endereço etc, ao pedir para imprimir um elemento número X sempre é retornado pra mim os valores do último elemento adicionado à lista.
A agenda foi feito com Form e tudo mais, só que simplifiquei aqui só para efeitos de correção.
[code]package novopacote;
import java.util.*;
import javax.swing.JOptionPane;
final class ClasseTeste {
Dados dados = new Dados();
List lista = new LinkedList();
public void Cadastra(String nomeIn, String ruaIn, String bairroIn, String cidadeIn, String estadoIn, String complementoIn, int numeroIn, int cepIn) {
dados.setDados(nomeIn, ruaIn, bairroIn, cidadeIn, estadoIn, complementoIn, numeroIn, cepIn);
lista.add(dados);
}
public Dados Busca(int codIn) {
return lista.get(codIn - 1);
}
public static void main(String[] args) {
ClasseTeste go = new ClasseTeste();
go.Cadastra("1", "1", "1", "1", "1", "1", 1, 1);
go.Cadastra("2", "2", "2", "2", "2", "2", 2, 2);
go.Cadastra("3", "3", "3", "3", "3", "3", 3, 3);
System.out.println("\nTamanho: " + go.lista.size());
// Apesar de ter três elementos e em baixo eu tentar recuperar informações do elemento 1 (0 para a lista), só me é retornado os valores 3 do último elemento.
System.out.println("1º Nome: " + go.Busca(1).getNome() + "\n2º Nome: " + go.Busca(2).getBairro());
}
}[/code]
[code]package novopacote;
final public class Dados {
private String nome, rua, bairro, cidade, estado, complemento;
private int numero, cep;
public void setDados(String nomeIn, String ruaIn, String bairroIn, String cidadeIn, String estadoIn, String complementoIn, int numeroIn, int cepIn) {
nome = nomeIn;
rua = ruaIn;
bairro = bairroIn;
cidade = cidadeIn;
estado = estadoIn;
complemento = complementoIn;
numero = numeroIn;
cep = cepIn;
}
… // Aqui vem os métodos get.
}[/code]
Resposta:
Tamanho: 3
1º Nome: 3
2º Nome: 3
Deveria ser:
Tamanho: 3
1º Nome: 1
2º Nome: 2
Outra dúvida é que vi aqui no fórum algum coléga falando pra usar List lista = new LinkedList(); ao invéz de LinkedList mesmo. Por que?
Obrigado desde já. =]