comment faire pour supprimer le dernier élément dans java.util.Set?
je veux supprimer chaque élément de cet ensemble.
Set<String> listOfSources = new TreeSet<String>();
for(Route route:listOfRoutes){
Set<Stop> stops = routeStopsService.getStops(route);
for(Stop stop:stops)
listOfSources.add(stop.getStopName());
}
ici, je veux supprimer le dernier élément de listOfSources.
- L'OMI de votre code s'appuie sur un ensemble ordonné ensuite, il est inapproprié de déclarer la variable comme un Ensemble. Le codage d'une interface n'a de sens que si la mise en œuvre n'a pas d'importance-dans ce cas, il n', et votre code suivant ne fonctionnera pas si vous utilisez la accepté de répondre et de vous changer l'ensemble de la mise en œuvre.
Vous devez vous connecter pour publier un commentaire.
Vous aurez besoin de jeter en arrière pour TreeSet, comme de l'Ensemble n'ont pas de n'importe quel ordre.
Comme alternative, vous pouvez définir listOfSources comme un SortedSet
Ensuite, vous pouvez utiliser
last()
méthode sans casting pour TreeSetJe pense que c'est une approche privilégiée puisque vous supposez que votre Jeu a un ordre.
Pour TreeSet vous pouvez utiliser
pollLast
fonction.Voir : http://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html#pollLast()
NavigableSet
Une autre possibilité est d'utiliser la Pile de la classe. (Bien que moins efficace pour le problème en question)
pop()
méthode aura le dernier élément et de le retirer de la pile.Le plus efficace est d'utiliser
NavigableSet
'spollLast
méthode.Pour une meilleure pratique, vous devez déclarer votre variable comme un
NavigableSet
plutôt comme unSet
.Il est mieux que le moulage de votre variable d'un
TreeSet
pour plusieurs raisons:TreeSet
comme il a été conseillé dans d'autres réponses, et vous modifiez ultérieurement le choisi de mise en œuvre à l'endroit où vous définissez votre variable, mais n'oubliez pas de modifier ci-dessous, il va lever une exceptionNavigableSet
, et pas seulement d'unSet
. Ainsi, le choix de ce type de la variable doit rendre explicite.