Say, j'ai deux références à un objet dans une LinkedList List1:Itérer par liste chaînée en Java
LinkedList<Object> List1 = new LinkedList<Object>();
Object first;
Object last;
Je ne veux pas utiliser l'index de la liste de ces objets pour se référer à eux, parce que la longueur de ma liste change. Je pense que cela ne marcherait pas. Maintenant, je veux parcourir la sous-liste définie par le premier et le dernier, où le premier définit le début de la sous-liste dans List1 et définit en dernier la fin de la sous-liste dans List1.
Mon problème est maintenant que je ne peux pas AFAIK faire quelque chose comme
while (current != last){
// do something
current = someiterator.next();
}
parce que je compare deux objets au point général de volonté à des endroits différents. De plus, je ne peux pas non plus comparer les références par leur valeur, car la liste peut avoir une valeur apparaissant plusieurs fois. Alors, comment puis-je itérer à travers cette sous-liste de List1?
okay, donc si je fais quelque chose comme last = List1.get (2) et ensuite comparer plus tard dernier contre un itérateur, comme "while (current! = Last)" alors la comparaison devrait comparer les deux objets que je veux vraiment comparer? – ptikobj
Je pense qu'il y avait quelque chose que je n'avais pas réalisé: Si vous faites quelque chose comme Objet a = b; puis un tiendra la référence à l'objet b, non? et comme a contient la référence à b, je peux faire quelque chose comme while (a! = Current). Initialement, je pensais que a = b assignerait l'objet ou la valeur de b à a. Cependant, la valeur n'est affectée qu'à a si b est une primitive. Et si b est un objet, alors un ne tiendra que la référence de b. Merci pour toutes vos réponses, je pense que je l'ai maintenant. – ptikobj
@ptikobj: L'objet n'a pas vraiment de nom. Ni «a» ni «b» ne sont «l'objet». Au lieu de cela, * both * contiennent des références à l'objet, et ont donc la même valeur par rapport à '==' –