Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Prada

Java sobre ArrayList

Recommended Posts

Galera preciso realizar a seguinte atividade:

 

"Considere uma aplicação para armazenar os seguintes dados de uma pessoa em uma agenda de endereços: nome, endereço e telefone. Especifique um TAD para armazenar os dados das pessoas e as operações necessárias para inserir, consultar e excluir os dados das pessoas."

 

Bom, preciso criar uma classe que registre um usuário e realize operações como consultar registro e exclusão, bom, sou leigo em java mas consegui gravar os dados em um ArrayList, entretanto sempre que registro um usuário novo, o anterior é sobrescrito, armazenando apenas o último cadastrado. Abaixo está o código, dividido em classe Main, Pessoa e Operações. Quero saber o porque está sobrescrevendo e se o código em geral está de acordo com o enunciado da questão. Agradeço a todos!

 

Classe Main:

public class exercicio {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        Pessoa usuario = new Pessoa();
        Operacoes acao = new Operacoes();

        int op;

        do {
            System.out.println("[1] Inserir");
            System.out.println("[2] Consultar");
            System.out.println("[3] Remover");
            System.out.println("[4] Sair");
            System.out.print("Opção desejada: ");
            op = input.nextInt();
            switch (op) {
                case 1:
                    input.nextLine();
                    System.out.print("Nome: ");
                    usuario.setNome(input.nextLine());
                    System.out.print("Endereço: ");
                    usuario.setEndereco(input.nextLine());
                    System.out.print("Telefone: ");
                    usuario.setTelefone(input.nextLine());
                    acao.inserePessoa(usuario);
                    System.out.println(usuario);
                    break;
                case 2:
                    acao.consultaPessoa();
                    break;
                case 3:
                    break;
            }
        } while (op != 4);
    }
}


Classe Pessoa:

package TAD02;

public class Pessoa {

    String nome;
    String endereco;
    String telefone;

    public Pessoa() {
    }

    public Pessoa(String nome, String endereco, String telefone) {
        this.nome = nome;
        this.endereco = endereco;
        this.telefone = telefone;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getEndereco() {
        return endereco;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    @Override
    public String toString() {
        return "nome=" + nome + ", endereco=" + endereco + ", telefone=" + telefone;
    }
    
}

Classe Operações:

package TAD02;

import java.util.ArrayList;

public class Operacoes extends Pessoa {

    ArrayList<Pessoa> listaPessoa = new ArrayList<>();

    public void inserePessoa(Object usuario) {
        listaPessoa.add((Pessoa) usuario);
    }

    public String consultaPessoa() {
        for (Pessoa c: listaPessoa) {
            System.out.println(listaPessoa.get(0));
        }
        return "oi";
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não sei muito bem Java, mas, reparei algo em seu código.

Nessa parte, não seria assim:

ArrayList<Pessoa> listaPessoa = new ArrayList<Pessoa>();

E utilizando somente esse get(0), vc não estaria retornando o primeiro index? Não deveria ser algo como

for (Pessoa c: listaPessoa) {
System.out.println(listaPessoa.get(c));

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.