J'écris une liste chaînée (n'utilisant pas Java) et essaye de créer une méthode get pour renvoyer un élément de la liste par son numéro d'index. A l'origine, j'ai écrit ceci en utilisant une boucle for. Mon code échoue à plusieurs reprises un test dans lequel il récupère l'élément à l'index 0 (il semble que je puisse récupérer des éléments sur d'autres indices). Curr est juste pour moi de garder une trace du nœud actuel. Je pensais que la boucle for pourrait être ce qui me causait des problèmes, donc je l'ai écrit comme une boucle while.Récupération d'un élément par index dans une liste chaînée Java
while (curr != null) {
if (i == index) {
i++;
return curr.data;
}
curr = curr.next;
}
Cependant, je n'arrive toujours pas à récupérer l'élément à l'index 0. J'apprécie toute contribution sur la façon dont ces méthodes de parcours pourraient être problématiques. Je suis un peu perdu. Aussi mes excuses si ma mise en forme est désactivée, je m'habitue toujours au formatage sur ce site.
Notez que vos Bounds contrôles (par exemple 'si (index> numElts) {') devrait être avant la boucle, car ils ne changent pas de valeur dans le corps de la boucle. –
@AndyTurner La vérification des limites internes ne devrait même pas être nécessaire car elles ne font que itéter de '' this.size() '. – billie
@billie true, mais pourquoi déranger iterating toute la liste si vous savez qu'il est hors limites pour commencer? –