2 Iterator e 2 while

Boa tarde pessoal, tudo bem com vocês?

Estou tendo a seguinte situação, tenho duas listas, na qual a lista lstQuestor possui alguns dados e um valor, a lstBordero possui outros dados e um valor.

Necessito cruzar as informações e verificar se o valor da lstQuestor é igual ao valor da lstBordero, caso seja, eu devo remover esse registro de ambas as listas.

Fiz a implementação utilizando o for mas apos muitos erros verifiquei que para listas que estão sendo “loopadas” o Iterator é o mais indicado.

Ai no caso eu consegui chegar ao seguinte resultado:

while (itrQuestor.hasNext()) {
    a++;
    double vQuestor = itrQuestor.next().getValor();

    while (itrBordero.hasNext()) {
        b++;
        double vBordero = itrBordero.next().getValor();

        System.out.println(b + " - " + vQuestor + " - " + vBordero);
        if (vQuestor == vBordero) {
            itrQuestor.remove();
            itrBordero.remove();
        }
    }
}

Verifiquei que sempre que executo o código o primeiro loop do itrQuestor.hasNext() faz com que o itrBordero.hasNext() seja executado até o fim, mas no segundo loop do itrQuestor.hasNext() o itrBordero.hasNext() não é executado, me parece que eu de alguma forma teria que voltar a lista ao inicio mas não sei se estou correto.

Alguém saberia me dizer se é nessa linha mesmo?

E se existir outras formas de comparar os registros da primeira lista com a segunda lista e remover o registros de ambas as listas quando o valor for o mesmo também sera bem vinda.