Comment dois-je effectuer une itération sur un file d'attente de priorité correctement?
J'ai un java affectation impliquant l'itération d'une file d'attente de priorité. La file d'attente se compose d'objets avec une chaîne et un entier (int) et j'ai besoin d'avoir un moyen de vérifier un objet séparé de la chaîne à l'encontre de tous les objets de la file d'attente.
Serait-il meilleur moyen pour ce faire être un itérateur objet? Qui semble trop salissant. J'ai pu retirer et à mettre en file d'attente, mais qui semble inefficace. Peut-être une boucle foreach?
OriginalL'auteur Anon | 2012-12-07
Vous devez vous connecter pour publier un commentaire.
Oui, si vous avez besoin de vérifier chaque élément de la collection, un
iterator
oufor each
est probablement le meilleur.Ou
OriginalL'auteur The111
Un petit détail: si il n'y a aucune chance pour que votre file d'attente peuvent être modifiés au cours de la boucle, puis les deux
iterator
etfor each
sera la cause d'uneConcurrentModificationException
; si il y a une chance que la file d'attente va obtenir modifié en cours de traitement, vous pouvez utiliserpoll()
:OriginalL'auteur Haroldo_OK
Si vous n'avez pas de soins sur la commande (dans ce cas - pourquoi faites-vous affaire avec
PriorityQueue
?), utiliser l'Itérateur. Si vous souhaitez effectuer une itération par ordre de priorité, puis consultez les conseils de Javadoc:Im dit-je utiliser une file d'attente de priorité. Il n'importe pas si ce que j'ai traversée. J'ai juste besoin de vérifier chacun des objets de la chaîne pour s'assurer qu'il ne marche pas correspondre à mon objet séparé de la chaîne
OriginalL'auteur Miljen Mikic