Beh, certo: non è solo in questo caso, il metodo equals ritorna sempre un booleano.

Allora è come pensavo: puoi tranquillamente rimettere

codice:
a.get(i).equals(b.get(j)
dentro l'if, ma devi togliere il punto e virgola subito dopo, sennò gli stai dicendo:
"se l'elemento i è uguale all'elemento j NON FARE NULLA e poi stampa SEMPRE la stringa "ho trovato un elemento uguale!!!il nome"+a.get(i)+""+b.get(j)".

A proposito, la terminazione del ciclo for è i < a.size(), non minore o uguale. Mi sembra strano che funzioni, dovrebbe generarti un errore a runtime