次のコードを検討してください。
6. Set<Integer> set = new HashSet<Integer>();
7. Integer i1 = 45;
8. Integer i2 = 46;
9. set.add(i1);
10. set.add(i1);
11. set.add(i2); System.out.print(set.size() + " ");
12. set.remove(i1); System.out.print(set.size() + " ");
13. i2 = 47;
14. set.remove(i2); System.out.print(set.size() + " ");
15. System.out.println(set.contains(i2));
コードは次を出力します。
2 1 1 false
14行目以降、サイズは になると思いました0が、 です1。13 行目で新しいオブジェクトi2がセットに追加されていると思われるので、15 行目でテストしましたが、返されますfalse(つまりi2、セットに存在しません)。なぜですか?