Java LinkedHashSet en arrière itération
Comment puis-je l'itération sur les éléments d'un LinkedHashSet
depuis le dernier élément de la première?
- Pourquoi en Java Cadre de Collecte, il n'est pas inclus. LinkedHashSet maintient FIFO commande donc un utilitaire pour convertir de l'ordre dans ce PRINCIPE devrait être là ce qui semble être varier pratique lorsque l'exigence est de maintenir l'ordre d'insertion dans le même temps, nous pouvons avoir besoin pour effectuer une itération dans l'ordre inverse. Dans mon projet, il y avait quelques temps j'avais besoin de cela déjà. Malheureusement, je dois utiliser la Liste de servir d'intermédiaire pour profiter des Collections.reverse() de l'utilitaire. C'est sale, n'est-ce pas!
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez continuer à utiliser les collections, vous pouvez utiliser les éléments suivants:
Si vous êtes bien avec l'aide d'un tableau au lieu de cela, vous pourriez jeter un oeil à hvgotcodes réponse.
new LinkedList<>(set)
va copier tous les éléments, n'est-ce pas?er, en supposant que vous voulez dire LinkedHashSet...
Je voudrais utiliser toArray et il suffit d'utiliser un inverse pour la boucle.
Il pourrait y avoir une meilleure façon de le faire, mais cela devrait fonctionner.
toArray
garantit toute commande est conservéQuelque chose comme
C'est une autre façon:
Si vous voulait vraiment dire LinkedHashSet, vous pourriez mettre les éléments dans une liste de tableaux et ensuite utiliser la liste de tableaux de ListIterator.
De la javadoc: "Cette liste liée définit l'itération de la commande, qui est l'ordre dans lequel les éléments ont été insérés dans l'ensemble (insertion d'ordre)."
De sorte que vous pouvez tout simplement: