Não deve ser permitido cadastrar dois alunos que tenham o mesmo CPF, Alguem me dá uma luz

Olá mestres, sou novato em Java e gostaria de saber sobre como cadastrar um aluno e depois verificar se o cpf dele já existe…

Classe Aluno:

package com.mycompany.sistemaacademico;

import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
*

  • @author PedPano
    */
    public class Aluno {

    ArrayList Alunos = new ArrayList<>();
    ArrayList cpfAlunos = new ArrayList<>();

    public void Alunos() {
    String list = “”;
    list += “1 - Cadastrar \n”;
    list += “2 - Alterar \n”;
    list += “3 - Remover \n”;
    list += “4 - Voltar \n”;

     String strmenuAluno = JOptionPane.showInputDialog(null, "Selecione umas das opções \n" + list);
     int menuAluno = Integer.parseInt(strmenuAluno);
    
     switch (menuAluno) {
         case 1:
             CPF cpfAlunos = new CPF(
             JOptionPane.showInputDialog("Digite seu CPF")
             );
             System.out.println(cpfAlunos);
             if(cpfAlunos.cpfAluno != null){
                 for (int j = 0; j < Alunos.size(); j++) {
                     if(Alunos.get(j).cpf.equals(cpfAlunos.cpfAluno)){
                         System.out.println("CPF Já Existe");
                     }
                 }
             }
             
             
             CadastrarAluno cadAluno = new CadastrarAluno(
             JOptionPane.showInputDialog("Digite seu CPF"),
             JOptionPane.showInputDialog(null),
             JOptionPane.showInputDialog(null),
             JOptionPane.showInputDialog(null),
             JOptionPane.showInputDialog(null)
             );
             Alunos.add(cadAluno);    
             
             
             System.out.println(Alunos);
             if (cadAluno.cpf != null) {
                 for (int i = 0; i < Alunos.size(); i++) {
                     if (Alunos.get(i).cpf.equals(cpfAlunos.cpfAluno)) {
                         System.out.println("CPF já existe");
                     } else {
                         cadastrarAluno();
                     }
                 }
             }
             
             break;
         case 2:
             JOptionPane.showMessageDialog(null, "Alunos Cadastrados \n" + Alunos);
             String alt = JOptionPane.showInputDialog("Digite o seu CPF do aluno que deseja alterar");
             alterarAluno(alt);
             break;
         case 3:
             String remove = JOptionPane.showInputDialog("Digite o CPF do aluno que deseja remover");
             removerAluno(remove);
             break;
         case 4:
             voltarMenu();
     }
    

    }

    private void cadastrarAluno() {
    CadastrarAluno cadAluno = new CadastrarAluno(
    JOptionPane.showInputDialog(“Confirme seu CPF”),
    JOptionPane.showInputDialog(“Digite seu nome”),
    JOptionPane.showInputDialog(“Diite seu e-mail”),
    JOptionPane.showInputDialog(“DIgite seu telefone”),
    JOptionPane.showInputDialog(“Digite sua data de nascimento”));
    Alunos.add(cadAluno);
    }

    private void alterarAluno(String alt) {
    for (int i = 0; i < Alunos.size(); i++) {
    if (Alunos.get(i).getCpf().equals(alt)) {
    Alunos.get(i).setCpf(JOptionPane.showInputDialog(“Digite seu CPF”));
    Alunos.get(i).setNome(JOptionPane.showInputDialog(“Digite seu nome”));
    Alunos.get(i).setEmail(JOptionPane.showInputDialog(“Diite seu e-mail”));
    Alunos.get(i).setTelefone(JOptionPane.showInputDialog(“DIgite seu telefone”));
    Alunos.get(i).setDataNascimento(JOptionPane.showInputDialog(“Digite sua data de nascimento”));
    System.out.println(Alunos);
    }
    }
    }

    private void removerAluno(String remove) {
    for (int i = 0; i < Alunos.size(); i++) {
    if (Alunos.get(i).getCpf().equals(remove)) {
    Alunos.remove(i);
    System.out.println(Alunos);
    }
    }
    }

    private void voltarMenu() {

    }

}


Classe CPF:

package com.mycompany.sistemaacademico;

/**
*

  • @author PedPano
    */
    public class CPF {
    String cpfAluno;

    public CPF(String cpfAluno){
    this.cpfAluno = cpfAluno;
    }

    public String getCpfAluno() {
    return cpfAluno;
    }

    public void setCpfAluno(String cpfAluno) {
    this.cpfAluno = cpfAluno;
    }

    @Override
    public String toString() {
    return “CPF{” + “cpfAluno=” + cpfAluno + ‘}’;
    }
    }


Classe Main:
package com.mycompany.sistemaacademico;

import javax.swing.JOptionPane;

/**
*

  • @author PedPano
    */
    public class Main {

    public static void main(String[] args) {
    //ArrayList Cursos = new ArrayList();
    Curso curso = new Curso();
    CadastrarCurso cadcurso = new CadastrarCurso(null,null,null);

     Disciplina disciplina = new Disciplina();
     CadastrarDisciplina caddis = new CadastrarDisciplina(null,null,null,null);
     
     Aluno aluno = new Aluno();
     CadastrarAluno cadAluno = new CadastrarAluno(null,null,null,null,null);
     CPF cpfAlunos = new CPF(null);
     
     MatricularAluno matricularaluno = new MatricularAluno();
     CadastrarMatricula cadMatricula = new CadastrarMatricula(null,null);
     
     CadastrarAvaliacao cadastraravaliacao = new CadastrarAvaliacao();
     HistoricoEscolar historicoescolar = new HistoricoEscolar();
    
     boolean sair = false;
     int option = 0;
     //option = JOptionPane.showInputDialog("1 - Curso", "2 - Disciplina")
    
     String menu = "";
     menu += "1 - Curso \n";
     menu += "2 - Disciplina \n";
     menu += "3 - Aluno \n";
     menu += "4 - Matrícular Aluno \n";
     menu += "5 - Cadastrar Avaliação \n";
     menu += "6 - Histórico Escolar \n";
     menu += "7 - Sair";
     
     while (sair == false) {
         String strOption = JOptionPane.showInputDialog(null, "" + menu);
         option = Integer.parseInt(strOption);
    
         switch (option) {
             case 1:
                 curso.cursoOptions();
                 break;
             case 2:
                 disciplina.disciplinaOptions();
                 break;
             case 3:
                 aluno.Alunos();
                 break;
             case 4:
                 matricularaluno.matricularAluno();
                 break;
             case 5:
                 cadastraravaliacao.cadastrarAvaliacao();
                 break;
             case 6:
                 historicoescolar.historicoEscolar();
                 break;
             case 7:
                 sair = true;
                 break;
             default:
                 break;
         }
    
     }
    

    }
    }

Você não precisa de uma classe só para testar o CPF. O teu IF já faz quase isso.

Uma outra forma de fazer, se fosse operação em lote, seria usar outro tipo de agrupamento ao invés de ArrayList. Tem alguns que não permitem chaves primárias duplicadas, então seria só você mandar inserir um novo objeto a cada item do lote; se ele já existisse, não seria inserido.