No dovrebbe andare benissimoanche l' "==".L'equals di serve per forza quando confronti due oggetti di tipo stringa di cui nemmeno uno è una costante (le stringhe del tipo "qualcosa" sono costanti stringa ) perchè altrimenti confronteresti due riferimenti ad oggetto,in questo caso invece viene effettuata una chiamata implicita del metodo toString dell'oggetto non costante tra i due, quindi va bene.Per scovare il problema ti consiglio di stampare i valori su System.out per vedere cosa va storto