String a = "aaa";
String b = "aaa";
この記法を用いる場合では、「==」が使えます。
というのは、上記の記法の場合は、aもbも同一のオブジェクトに対する参照になります。
つまり"aaa"というオブジェクトへの参照がaとbにコピーされるわけです。
そして「==」は「同じオブジェクトかどうか」の評価を行いますからtrueが返ります。
しかしそれは、同じオブジェクトかどうかの比較結果であって、文字列の評価結果ではないです。
試しに、
String a = new String("aaa");
String b = new String("aaa");
とやると
a==bはtrueになりません。
これは、a,bそれぞれに別なオブジェクトが生成されているためです。
equalsの場合は文字列を比較しますので、
上記どちらの定義の場合でも、trueが返されます。
ということで、文字列の比較にはequalsを用いたほうがよろしいかと思います。
お礼
またあまたありがとうございます。 そうですよね、HashMapに入っているオブジェクトは同じですよね。 これから、dayowlさんのヤツを試そうと思いますが、 異なるオブジェクトなので、falseが返ると思います。 ありがとうございました。