Problema para listar dados de umas ArrayLists

6 respostas
MuriloAngelo

Gente ajuda aqui na minha dúvida, eu to desenvolvendo uma lista telefônica, nessa o usuário pode cadastrar seu nome, seus números e seus emails, essa parte de cadastrar está ok, porem é na hora de lista que eu estou com dúvida, nome, telefone e email são ArrayList sendo que nome é uma ArrayList onde Pessoa é um construtor!

public Pessoa(String nome) { setNome(nome); }
Para listar o código é esse:

public void listar(){ int a = pessoas.size(); System.out.println("A agenda tem "+a+" número(s) cadastrado(s)!"); System.out.println("==========================="); System.out.println("Nome Telefone Email"); for (Pessoa p : pessoas) System.out.println(p); System.out.println("==========================="); msgVoltar(); }

Minha dúvida é como eu posso listar as 3 ArrayList? 3 FOR? E como eu poderia listar uma do lado da outra?

6 Respostas

Malister
public class Contato {

	private String nome;
	private String telefone;
	private String email;
	
	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;
	}
	
	public String getEmail() {
		return email;
	}
	
	public void setEmail(String email) {
		this.email = email;
	}
ublic void listar(){ 
    	ArrayList<Contato> listaContatos = new ArrayList<Contato>();
    	
        int a = listaContatos.size();    
        System.out.println("A agenda tem "+a+" número(s) cadastrado(s)!");    
        System.out.println("===========================");    
        System.out.println("Nome      Telefone      Email");    
        for (int i = 0; i < listaContatos.size(); i++) {
        	System.out.println(listaContatos.get(i).getNome() + " " +
        			listaContatos.get(i).getTelefone() + " " +
        				listaContatos.get(i).getEmail());
		}
        System.out.println("===========================");  
        msgVoltar();    
     }
dsystem

Bom dia Murilo,

Então, o seu está quase certo, porém no seu for quando você colocar

for (Pessoa p : pessoas)  
         System.out.println(p);  
   }

o que será impresso será apenas o objeto pessoa, para você imprimir os atributos, basta você colocar dentro do seu for assim:

for(Pessoa p: pessoas)
{
    System.out.println(p.getNome() + " -- " + p.getEmail() + " -- " + p.getTelefone());
}

Tente fazer isto e poste o resultado.

Bjs!

Diguinho.Max

exatamente como nosso amigo em cima respondeu,

no seu for faltou chamar o p.getNome e etc…

MuriloAngelo

Até ai tudo OK, mas é o seguinte, dessa maneira cada cadastro terá apenas um nome, telefone e email, fui instruído a fazer uma lista telefônica onde o
usuário digite quantos telefones e emails quiser, pra isso telefone e email não serão String e sim ArrayList(já que pode ser adicionado vários números e emails)!

MuriloAngelo

up

leonardo2204

É só vc criar um ArrayList para telefone e outro para email. Na hora de chamar, sera necessario o uso de outros for, um para cada elemento.

Criado 31 de janeiro de 2012
Ultima resposta 3 de fev. de 2012
Respostas 6
Participantes 5