7
votes

Y a-t-il un moyen facile de copier un itérateur dans une liste en Java?

Je veux quelque chose comme ceci: xxx

qui devrait être équivalent à: xxx

existe-t-il une méthode dans l'API à atteindre cela, ou est-ce le seul moyen?


1 commentaires

Je pense que vous voudriez soit «retourner du représentant» dans cette méthode, ou transmettez-le dans le fool comme un paramètre, car sinon cette méthode est en fait fondamentalement un NO-OP (sauf pour l'épuisement de l'itérateur) :)


5 Réponses :


11
votes

Non, il n'y a rien de tel dans l'API standard.

en Java, ce n'est pas idiomatique (et donc plutôt rare) d'utiliser itérateur dans le cadre d'une API; Ils sont généralement produits et consommés immédiatement.


0 commentaires

3
votes

Je ne crois pas que les itérateurs soient assurés après un nombre fixe d'itérations, ce n'est donc probablement pas un moyen sûr d'insérer des données dans votre liste. Considérons une implémentation d'itérateur mannequin qui renvoie toujours la constante 42 à partir d'appels vers suivant () . Votre application sera rapidement manquée de mémoire.


0 commentaires

7
votes

non, mais le Google Collections Library a une bonne façon de le faire (si vous allez utiliser une autre fonction d'autre - aucune raison d'ajouter cette dépendance juste pour que): xxx


0 commentaires

7
votes

dans GUAVA (nouvelle bibliothèque Java à usage général de Google, qui remplace Google-Collections), cette pourrait être simplement: xxx

ou si la liste sera en lecture seule: xxx


1 commentaires

Ou, en effet, itérators.addall (comme suggéré par Carl) si vous souhaitez ajouter une collection existante.



1
votes

Dans Java 8, vous pouvez le faire comme ceci: XXX

Voir aussi: Un moyen facile de changer ibler en collection


0 commentaires