l'ajout de Entier des objets à un hashSet

Considérons le code suivant:

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));

Le code de sorties:

2 1 1 false

Après la ligne 14, je suppose que la taille serait 0 mais il est 1. Je suppose qu'un nouvel objet i2 est ajouté à l'ensemble de la ligne 13, j'ai donc testé qu'à la ligne 15, mais il renvoie false (j'.e n i2 existe dans le jeu), pourquoi est-ce?

Vous n'êtes pas la modification de la i2 c'est dans le jeu. Vous êtes à la modification de la référence i2; 46 sera toujours dans le jeu.

OriginalL'auteur Java Player | 2012-09-02