Problemas em testar dados dentro de uma ArrayList

Pessoal estou fazendo um programa de cadastro, estou utilizando ArrayList para armanezamento, acontece que um determinado momento quero que o sistema teste se o nome que está sendo cadastrado existe na Array se não existir cadastra se existir gera um Alert, eu tentei fazer de várias maneiras mas não estou conseguindo, dou mais detalhes no código abaixo:

principal.java

Dados dados= new Dados();

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {

    String amigo = (String) jCamigo.getText();
    Emprestimo emprestimo = new Emprestimo(amigo);
    dados.cadastraEmprestimo(emprestimo); 
    System.out.println("Data do empréstimo.:" +dateFormat.format(emprestimo.getDataEmprestimo()) + " Data da Devolução.:  " + dateFormat.format(emprestimo.getDataDevolucao())+ " Nome do Amigo.: " + emprestimo.getNomeamigo()+ " Revista.: " + emprestimo.getRevista());

}

Dados.java // o problema é aqui: fiz este if mas ele simplesmente não funciona não testa, salva mesmo repedido

public void cadastraEmprestimo(Emprestimo emprestimo){

       //Fiz e refiz este for para bloquear os amigos que ja tem emprestimos, para mim o algoritimo está certo   
     for(int i=0;i<emprestimoArray.size();i++){
       if(amigosArray.get(i).getNome().equals(emprestimo.getNomeamigo())) {
          JOptionPane.showMessageDialog(null, "Este Amigo já possui empréstimo", "alert", JOptionPane.ERROR_MESSAGE);
      }else{
            emprestimoArray.add(emprestimo);
       } 
     }
               
 }

Desculpe a confusão amigos, se precisarem eu posto mais detalhes do código…

Você está percorrendo o emprestimoArray mas está verificando se o emprestimo está contido no amigosArray.

Tentei assim também, mas não funcionou…

mano da System.out.print nessa parte “emprestimo.getNomeamigo()” e no “amigosArray.get(i)” e ve se ta saindo o esperado.

Estás a percorrer um array mas se o if para o primeiro valor der false, estas imediatamente a adicionar o nome registo.
O que queres fazer é percorrer todo o array para verificar se existe algum repetido e só depois, se não existir, adicionar.

boolean exist = false;     // no inicio ainda nao encontramos nenhum repetido
for (<percorrerarray>) {   // percorremos o array
    if (<condicao>) {      // verificamos se é repetido
        exist = true;      // se for repetido, exist é verdadeiro
        break;             // paramos o ciclo, já encontrámos um
     }
 }
if (!exists) {      // fora do ciclo, se nao encontramos, adicionamos
    <adidiona>
}