×
Ir ao conteúdo
  • Cadastre-se

Java Agenda java (ArrayList e Scanner)


VictorATK
Ir à solução Resolvido por AdrianoSiqueira,

Posts recomendados

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

Link para o comentário
Compartilhar em outros sites

  • Solução

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("-------------------------------");
    }
}

 

Link para o comentário
Compartilhar em outros sites

@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("-------------------------------");
    }
}

 

 

Link para o comentário
Compartilhar em outros sites

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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!