J'essaie de créer tous les sous-ensembles d'un ensemble et de les regrouper sans doublons. Par exemple, dans un ensemble comme {1,2,3,4,5,6}, {(1,2), (3,4), (5,6)} ce tuple peut être valide d'un autre côté { (1,2), (2,4), (5,6)} ce tuple ne devrait pas être valide puisqu'il a deux instances du numéro 2 bien que l'ensemble n'ait qu'une instance du numéro 2.Comment forcer eclipse à créer différentes références d'objet
ce formulaire non-dupliqué, j'ai une petite méthode qui vérifie le sous-ensemble donné, si elle a le nombre qui est passé à la méthode en tant que paramètre, il renvoie vrai.
Le problème avec cela, quand il y a un doublon dans l'ensemble comme {1,2,3,1,5,6} il ne devrait pas dire que le second "1" est égal au premier "1". Pour que cela se produise, j'ai utilisé l'opérateur "==" pour comparer les références d'objets et j'ai espéré que cela fera la différence entre le premier "1" et le second "1", mais ce n'est pas le cas. Apparemment, Eclipse crée la même référence d'objet pour le même type d'objets qui est créé à la compilation et a la même valeur. Comment puis-je forcer Eclipse à créer différentes références d'objet? S'il existe un moyen de marquer des objets avec un numéro unique, cela aide aussi.
Voici la méthode:
private boolean doesTuplesHave(Integer number, ArrayList<ArrayList<Integer>> tuples){
for(ArrayList<Integer> list : tuples){
for(Integer numinTuple : list){
if(numinTuple == number){
return true;
}
}
}
return false;
}
Eclipse est le développement environnement; ce n'est pas le compilateur ('javac') ou le runtime (' jre', 'java') - c'est la machine virtuelle Java qui crée les instances de' Integer'. Je peux forcer votre for-loop 'pour (Integer numinTuple: list)' pour créer de nouvelles instances séparées de 'Integer', mais alors numinTuple aura _never_ be' == 'en nombre. –
A côté de la réponse ci-dessous, vous m'avez compris, merci. Pour exécuter et tester la méthode 'doTuplesHav' j'ai créé 6 objet' Integer' et les ajouter à 2 'ArrayList' en les regroupant par 3 pour imiter le paramètre' tuples'. Dans le débogage, j'ai vu que tous les entiers dans les tuples devenaient égaux à 'number' indépendamment de leurs valeurs. Heureusement, j'ai changé la conception de sorte que je n'ai plus besoin de contrôle de référence. –