Comparar valores comuns de uma pilha e uma lista

Boa noite, estou com dificuldade de comparar os valores em comum de uma lista e uma pilha, poderia me ajudar a resolver este problema? Desde ja agradeço.
OBS: iniciante kkkkk

public static void main(String[] args) {

    Stack<Integer> pilha = new Stack<Integer>();
    pilha.push(15);
    pilha.push(20);
    pilha.push(35);
    pilha.push(45);

    LinkedList<Integer> lista = new LinkedList<>();
    lista.addLast(41);
    lista.addLast(23);
    lista.addLast(20);
    lista.addLast(12);

    System.out.println("Os numeros da Pilha são:" + pilha);
    System.out.println("Os numeros da Pilha são:" + lista);

    
    int sPilha = pilha.size();
    int valor =0;
    int valorLista = 0;
    int verd = 0;
    for(int cont =0; cont < sPilha; cont++) {
        valor = pilha.pop();
        valorLista  = lista.pop();

        if(valor == valorLista){
            verd = valorLista;
            System.out.println("Os valores em comum da lista são: " + valorLista);
        }
    }
}

}

É que você está comparando se o primeiro elemento da lista é igual ao primeiro da pilha e assim por diante.

Cada elemento da pilha tem que ser comparado com cada elemento da lista.

Assim:

public static void main(String[] args) {

    Stack<Integer> pilha = new Stack<Integer>();
    pilha.push(15);
    pilha.push(20);
    pilha.push(35);
    pilha.push(45);

    LinkedList<Integer> lista = new LinkedList<>();
    lista.addLast(41);
    lista.addLast(23);
    lista.addLast(20);
    lista.addLast(12);

    System.out.println("Os numeros da Pilha são:" + pilha);
    System.out.println("Os numeros da Pilha são:" + lista);

    for (int elementoPilha : pilha) {
        for (int elementoLista : lista) {
            if (elementoPilha == elementoLista){
                System.out.println("Os valores em comum da lista são: " + elementoLista);
            }
        }
    }
}