次のコードを検討してください。
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
、セットに存在しません)。なぜですか?