Treeset à l'ordre des éléments dans l'ordre décroissant
Voici le morceau de code que j'ai utilisé pour Java 5.0
TreeSet<Integer> treeSetObj = new TreeSet<Integer>( Collections.reverseOrder() ) ;
Collections.reverseOrder() est utilisé pour obtenir une base de comparaison dans le but d'inverser la façon dont les éléments sont stockés et itérée.
Est-il plus optimisé façon de faire?
- Inverser l'
this
etthat
dans le substituéecompareTo
pour que les articles sont insérés dans l'ordre inverse.
Vous devez vous connecter pour publier un commentaire.
Pourquoi pensez-vous que cette approche ne sera pas optimisé? L'ordre inverse
Comparator
simplement de basculer le signe de la sortie de l'Comparator
(ou de sortie decompareTo
sur leComparable
objets insérée) et je voudrais donc imaginer que c'est très rapide.Une autre suggestion: Plutôt que de modifier l'ordre de stocker les éléments que vous pourriez itération sur eux dans l'ordre décroissant à l'aide de la
descendingIterator()
méthode.TreeSet::descendingSet
En Java 6 et, plus tard, il y a une méthode sur
TreeSet
appelédescendingSet()
la production d'unNavigableSet
interface de l'objet.il est nécessaire de retourner le résultat. Mais je suppose que c'est juste un micro-optimisation... avez-vous vraiment besoin de cela ?
Inverse
compare
Vous pouvez inverser l'ordre des deux arguments dans la
comparer
méthode de votreComparateur
.