Erro no meu código Java!

Não sei o que estou fazendo de errado no meu código! Segue o enunciado:

Monte um algoritmo em que o usuário poderá cadastrar e pesquisar
hóspedes. O algoritmo deve oferecer um menu com três opções ao
usuário: 1- cadastrar; 2- pesquisar; 3- sair. A opção “cadastrar” deve
permitir que o usuário informe um nome de hóspede, gravando-o em
memória (máximo de 15 cadastros; caso atinja essa quantidade, mostre
“Máximo de cadastros atingido”). A opção “pesquisar” deve permitir que o
usuário informe um nome e, caso seja encontrado um nome exatamente
igual, mostre a mensagem “Hospede (nome) foi encontrado no índice
(índice onde foi cadastrado)”. Se o nome não foi encontrado mostre
“Hóspede não encontrado”. O algoritmo deve permitir que o usuário
realize essas operações repetidas vezes, até que use a opção “3”, que
encerra o algoritmo.

Exemplo:

[Saída de dados]
Digite 1- cadastrar; 2- pesquisar; 3- sair

[Entrada de dados]
1 (opção)
Maria da Silva (nome do hóspede)
[Saída de dados]
Digite 1- cadastrar; 2- pesquisar; 3- sair

[Entrada de dados]
1 (opção)
José Freitas (nome do hóspede)

[Saída de dados]
Digite 1- cadastrar; 2- pesquisar; 3- sair

[Entrada de dados]
2 (opção)
José Freitas

[Saída de dados]
Hóspede José Freitas foi encontrado no índice 1

[Saída de dados]
Digite 1- cadastrar; 2- pesquisar; 3- sair

[Entrada de dados]
3

O meu código é esse:

package atividade1ex4;

import java.util.Scanner;

public class Atividade1Ex4 {

    public static void main(String[] args) {
        Scanner entrada = new Scanner(System.in);
        String[] nome = new String [3];
        String nomeP;
        int menu, i=0, j=0;
        boolean parar = false;
        
        while(!parar){
        System.out.println("---MENU---\n1- cadastrar   |   2- pesquisar   |   3- sair");
        menu = entrada.nextInt();
        entrada.nextLine();
        
        
//        menu 1

        if(menu == 1){
        System.out.println("Digite o nome do hóspede que deseja cadastrar: ");
        nome[i] = entrada.nextLine();
        
        System.out.println(i);
        System.out.println(nome[i]);
        i++;   
        System.out.println("Máximo de cadastros atingido!");
        
//        menu 2
        }else if(menu == 2){
            System.out.println("Digite o nome do hóspede que deseja pesquisar: ");
            nomeP = entrada.nextLine();
            
            if(nomeP == nome[i]){
                for(i=0; i<nome.length; i++){
                System.out.println("Hóspede " + nome[i] + " encontrado no índice " + i+1 + "!");}
            }else{
                System.out.println("Hóspede não encontrado!");
            }
            
//        menu 3
        }else if(menu == 3){
            System.out.println("Saindo...");
            parar = true;
        }
        }
        
    }
}

O que está dando errado?

Eu não estava conseguindo procurar o dado dentro do vetor (no menu 2), mas já consegui resolver, por meio do for()!