Ajout d'éléments à une collection pendant une itération réinventé
Il est largement admis que la modification d'une collection pendant une itération peut conduire à un comportement non spécifié. Mais que se passe-t-il si nous voulons ajouter dynamiquement des éléments à la collection lors de l'itération, en veillant à ce que ces ajouts soient également répétés ?
La modification directe est-elle possible ?
Comme Java Le didacticiel suggère que l'utilisation d'itérateurs pour une modification directe est fortement déconseillée. Cela pourrait entraîner des résultats indésirables et des problèmes de terminaison potentiels.
Une approche basée sur la file d'attente
Pour ajouter des éléments en toute sécurité pendant l'itération, envisagez d'utiliser une structure de données de file d'attente. Voici comment cela fonctionne :
Cette approche garantit que les éléments ajoutés sont itérés dans la même ordre dans lequel ils ont été ajoutés. C'est similaire à un algorithme de recherche en largeur, dans lequel vous continuez à explorer le niveau d'éléments suivant jusqu'à ce que vous ayez épuisé le niveau actuel. Cette méthode évite les pièges potentiels de la modification directe de la collection et garantit une itération stable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!