Ir ao conteúdo

Java Agenda java (ArrayList e Scanner)


Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

Postado

Este programa está com problema no "for" e não consegui  identificar:

 

(Também estou pensando em implementar uma sessão de pesquisa para os contatos cadastrados, mas não tenho ideia de como)

 

Main:

 

package com.mycompany.agendacontatos;

import java.util.ArrayList;
import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
//        System.out.println("Quantos contatos quer cadastrar: "); int x = input.nextInt();
//       for(int i=0; i<=x; i++){
//           Contatos contato[i] = new Contatos();
//           contato[i].nome=input.nextInt();
//       } 
        ArrayList<Contatos> contatos = new ArrayList();//lista de objetos da classe Contatos //coleção de objetos Contatos
//        int opc = 0;
        System.out.println("qtos dados quer cadastrar");int x = input.nextInt();
        for (int i=1; i<=x; i++){
        String nome = input.nextLine();
        String telefone = input.nextLine();
        String endereco = input.nextLine();
        contatos.add(new Contatos(nome, telefone, endereco));
         
        }
          
        System.out.println(contatos.toString());
//         String pesquisa = input.nextLine(); 
String pesquisa = input.nextLine();
      for (int i=0; i<=contatos.size(); i++){
          if (contatos.get(i).equals(pesquisa)){ 
              System.out.println("achou");
      }
      }
   }

 

Classe Contatos:

 

package com.mycompany.agendacontatos;


public class Contatos {
  
    private String nome;
    private String telefone;
    private String endereco;
    
   public Contatos (String nome, String telefone, String endereco){
       this.nome = nome;
       this.endereco = endereco;
       this.telefone = telefone;
    }
   public String toString(){
       return "nome: "+this.getNome()+",\ntelefone: "+this.getTelefone()+"\nendereço: "+this.getEndereco();
   }
//   public void setNome(String nome){
//       this.nome = nome;
//   }
//   public void setTelefone(String telefone){
//       this.telefone=telefone;
//   }
//   public void setEndereco(String endereco){
//       this.endereco=endereco;
//   }
   public String getNome(){
       return this.nome;
   }
   public String getTelefone(){
       return telefone;
   }
   public String getEndereco(){
       return endereco;
   }

    
}

 

Ao executar o programa, os dados ficam assim:

 

image.png.73d4f8543d47b835bff2d107c31955e4.png

  • Solução
Postado

Veja se isso ajuda:

public class Contato {

    private String nome;
    private String telefone;
    private String endereco;


    public Contato() {
    }

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


    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 getEndereco() {
        return endereco;
    }

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


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

 

import java.util.ArrayList;
import java.util.List;

public class Agenda {

    private List<Contato> contatos;


    public Agenda() {
        this.contatos = new ArrayList<>();
    }


    public void adicionar(Contato contato) {
        contatos.add(contato);
    }

    public void atualizar(int indice, Contato contato) {
        if (indice < contatos.size()) {
            contatos.set(indice, contato);
        }
    }

    public void listar() {
        for (Contato contato : contatos) {
            System.out.println(
                    "    Nome: " + contato.getNome() + "\n" +
                    "Telefone: " + contato.getTelefone() + "\n" +
                    "Endereco: " + contato.getEndereco() + "\n"
            );
        }
    }

    public List<Contato> pesquisarNome(String nome) {
        List<Contato> resultado = new ArrayList<>();

        for (Contato contato : contatos) {
            if (contato.getNome().equalsIgnoreCase(nome)) {
                resultado.add(contato);
            }
        }

        return resultado;
    }

    public void remover(int indice) {
        if (indice < contatos.size()) {
            contatos.remove(indice);
        }
    }
}

 

public class ListaTest {
    public static void main(String[] args) {
        Agenda agenda = new Agenda();


        // Adicionar contatos automaticamente
        for (int i = 1; i <= 5; i++) {
            Contato contato = new Contato("Nome " + i, "Telefone " + i, "Endereco " + i);
            agenda.adicionar(contato);
        }


        // Listagem inicial
        System.out.println(">> Primeira listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Atualizar
        System.out.println(">> Atualizar o primeiro contato");
        agenda.atualizar(0, new Contato("Fulano", "123", "Lugar nenhum"));
        System.out.println("-------------------------------");


        // Segunda listagem
        System.out.println(">> Segunda listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Remover o primeiro contato
        System.out.println(">> Remover o primeiro contato");
        agenda.remover(0);
        System.out.println("-------------------------------");


        // Terceira listagem
        System.out.println(">> Terceira listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Pesquisar nome
        System.out.println(">> Pesquisar nome");
        System.out.println(agenda.pesquisarNome("Nome 2"));
        System.out.println(agenda.pesquisarNome("Nome 9"));
        System.out.println("-------------------------------");
    }
}

 

Postado

@AdrianoSiqueira ajudou sim mano, muito obrigado!

Em 14/10/2021 às 19:59, AdrianoSiqueira disse:

Veja se isso ajuda:

public class Contato {

    private String nome;
    private String telefone;
    private String endereco;


    public Contato() {
    }

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


    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 getEndereco() {
        return endereco;
    }

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


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

 

import java.util.ArrayList;
import java.util.List;

public class Agenda {

    private List<Contato> contatos;


    public Agenda() {
        this.contatos = new ArrayList<>();
    }


    public void adicionar(Contato contato) {
        contatos.add(contato);
    }

    public void atualizar(int indice, Contato contato) {
        if (indice < contatos.size()) {
            contatos.set(indice, contato);
        }
    }

    public void listar() {
        for (Contato contato : contatos) {
            System.out.println(
                    "    Nome: " + contato.getNome() + "\n" +
                    "Telefone: " + contato.getTelefone() + "\n" +
                    "Endereco: " + contato.getEndereco() + "\n"
            );
        }
    }

    public List<Contato> pesquisarNome(String nome) {
        List<Contato> resultado = new ArrayList<>();

        for (Contato contato : contatos) {
            if (contato.getNome().equalsIgnoreCase(nome)) {
                resultado.add(contato);
            }
        }

        return resultado;
    }

    public void remover(int indice) {
        if (indice < contatos.size()) {
            contatos.remove(indice);
        }
    }
}

 

public class ListaTest {
    public static void main(String[] args) {
        Agenda agenda = new Agenda();


        // Adicionar contatos automaticamente
        for (int i = 1; i <= 5; i++) {
            Contato contato = new Contato("Nome " + i, "Telefone " + i, "Endereco " + i);
            agenda.adicionar(contato);
        }


        // Listagem inicial
        System.out.println(">> Primeira listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Atualizar
        System.out.println(">> Atualizar o primeiro contato");
        agenda.atualizar(0, new Contato("Fulano", "123", "Lugar nenhum"));
        System.out.println("-------------------------------");


        // Segunda listagem
        System.out.println(">> Segunda listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Remover o primeiro contato
        System.out.println(">> Remover o primeiro contato");
        agenda.remover(0);
        System.out.println("-------------------------------");


        // Terceira listagem
        System.out.println(">> Terceira listagem");
        agenda.listar();
        System.out.println("-------------------------------");


        // Pesquisar nome
        System.out.println(">> Pesquisar nome");
        System.out.println(agenda.pesquisarNome("Nome 2"));
        System.out.println(agenda.pesquisarNome("Nome 9"));
        System.out.println("-------------------------------");
    }
}

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!