java TreeSet - ne supprimez pas les éléments en double
TreeSet supprime les différents éléments avec le même Comprator valeur. Je ne veux pas l'enlever.
Est-il un moyen de contrôler cela? Ou utiliser une autre classe de conteneur?
Ajouté:
OK. Il semble que je ne peux pas utiliser.
J'ai besoin d'insérer une fonctionnalité de tri, pour la performance de la contrepartie. Pouvez Liste de le faire? Merci à tous.
source d'informationauteur pengguang001
Vous devez vous connecter pour publier un commentaire.
Un ensemble, par définition, ne peut pas avoir de doublons.
Si vous avez besoin d'utiliser une Liste ou d'une Matrice ou d'une telle
Même c'est un ensemble, c'est toujours source de confusion parce que les objets sont différents. Par exemple, un
Set<E>
de différents objetsE
fera tomber des objets lors de la conversion d'unTreeSet<E>
basé sur laComparator<E>
utilisé. Dans les deux cas, c'est un ensemble, mais l'ensemble des éléments stockés seront différents. À mon avis, ce n'est pas bien précisé dans la documentation.Une solution simple, si vous pouvez modifier le Comparateur, le laisser pas 0. Par exemple, au lieu de:
Utilisation:
Un but principal d'un
Set
est à pas avoir des doublons.Soit vous ne voulez pas un
Set
ou vous avez besoin d'un autreComparator
.Une citation de Javadoc pour Définir:
Utilisation de dérivés de Liste.
Si vous voulez un SortedList vous pouvez par exemple prendre une liste et manuellement à l'appel des Collections.sort() après chaque insertion.
Ou vous envelopper par exemple, une ArrayList pour assurer le tri des appels pour vous:
J'espère que j'ai obtenu toutes les fonctions qui peuvent exiger de tri. (Supprimer n'est pas nécessaire de remplacer)