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).
import javax.swing.JOptionPane;
import java.util.*;
public class Pessoa {
// Atributos
private String nome;
private String telefone;
// Construtor
public Pessoa() {
this.setNome("0");
this.setTelefone("0");
}
// metodos
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
//Metodo para impressão
public String toString() {
return "Nome: "+this.getNome()+ "\nTelefone: "+this.getTelefone();
}
//Metodo para cadastrar e atribuir valor na ArrayList.
public void cadastrar(int contador, Pessoa p, List l) {
int n=1;
int posicao=0;
while(n <= contador) {
this.setNome(JOptionPane.showInputDialog(null, "Informe o nome : "));
this.setTelefone(JOptionPane.showInputDialog(null, "Informe o Telefone : "));
l.add(posicao, p);
n++;
posicao++;
}
}
}
import java.util.*;
public class Main {
public static void main(String[] args) {
Pessoa p = new Pessoa(); //Criação do objeto
List<Pessoa> lista = new ArrayList<Pessoa>(); //Criação da ArrayList
p.cadastrar(5, p, lista); //Chama metodo cadastrar
for (int i=0; i<lista.size(); i++) {
System.out.println(lista.get(i).toString()); //Imprime chamando metodo toString()
}
}
}
Quando eu executo o codigo, ta imprimindo 'n' vezes somente o ultimo nome/telefone digitado =/. Alguem sabe aonde esta o erro?
Abraçoss!!
precisando de algo eh soh falar