Agenda em java

Olá.
alguém pode ajudar?

  1. Preciso criar um array de uma agenda com no máximo 20 contatos.
  2. Fazer uma pesquisa que liste todos os contatos cadastrados, (Ex: jo), deve exibir os contatos que contém essa inicial.
  3. Fazer uma classe de exceção para ser possível cadastrar apenas 20 contatos, caso o usuário tente cadastrar mais que isso deve exibir a exceção.

classe main
package programa;
import java.util.ArrayList;
import java.util.Scanner;

public class Programa {
public static void main(String[] args) {
// TODO code application logic here

   	Scanner entrada = new Scanner (System.in);
    int op = 0;
    ArrayList<Contato> agendaContatos = new ArrayList();
    Contato contato;

    while (op != 3){            

        System.out.println("\n1 - CADASTRAR: ");
        System.out.println("2 - LISTAR: ");
        System.out.println("3 - SAIR:\n"); 

        op = Integer.parseInt(entrada.nextLine());

        contato = new Contato();
        switch(op)
        {
        case 1:
            System.out.println("Digite o nome: ");
            contato.setNome(entrada.nextLine());
            System.out.println("Digite o telefone  : ");
            contato.setTelefone(entrada.nextLine());
            System.out.println("Digite o email : ");
            contato.setEmail(entrada.nextLine());
            System.out.println("Cadastro Realizado com Sucesso");

            agendaContatos.add(contato);

            break;            

        case 2:
             for(Contato objetoContato : agendaContatos){
                 System.out.println("Nome: " + objetoContato.getNome());
                 System.out.println("Telefone: " + objetoContato.getTelefone());
                 System.out.println("e-mail: " + objetoContato.getEmail());
             }
            break;

        default:
            System.out.println("OPÇÃO INVÁLIDA!!!");
        }
    }


}

}

classe contato
package programa;
public class Contato {

private String nome;
private String email;
private String telefone;

public String getNome() {
    return nome;
}

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

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getTelefone() {
    return telefone;
}

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

}

Você está com dificuldade exatamente aonde? Em pesquisar pela inicial do nome do contato?

1 curtida

Exatamente

Que tal assim?

private List<Contato> pesquisarContato(String nome){
	List<Contato> contatosEncontrados = new ArrayList<>();
	
	for(Contato contato : agendaContatos){
		if(contato.getNome().startsWith(nome)){
			contatosEncontrados.add(contato);
		}
	}
}

case 2:
	List<Contato> encontrados = new ArrayList<>();
	
	System.out.print("\nNome do contato: ");
	encontrados = pesquisarContato(leitor.next());
	break;