6 votes

Comment obtenir les n derniers éléments d'un Treemap ?

J'ai un TreeMap, qui ressemble à ceci :

 TreeMap<Instant, HashMap<Type, Double>>

Les valeurs instantanées représentent les heures d'une journée ; pour chaque heure passée, une valeur est stockée dans ma carte. Maintenant, je voudrais obtenir les 24 derniers éléments (donc les heures de la journée écoulée) de cette carte. Comment puis-je le faire ?

Cheers

4voto

amit Points 74385

Utilice TreeMap.tailMap() pour cela.

2voto

Jon Skeet Points 692016

Vous pouvez utiliser le descendingMap pour obtenir une vue sur la carte qui est essentiellement dans l'ordre inverse, puis prenez les 24 premières entrées de cette carte (appel iterator etc). ( Goyave 's Iterables fournit des méthodes utiles pour limiter un itérable, etc.)

EDIT : Par exemple, pour obtenir les 24 derniers éléments (dans l'ordre inverse, et en utilisant Guava) vous pourriez utiliser :

List<HashMap<Type, Double>> lastValues = Lists.newArrayList
    (Iterables.limit(map.descendingMap().values(), 24));

0voto

Vous pourriez en faire un SortedMap<LocalDate, SortedMap<Hours, Map<Type, Double>>> afin que vous puissiez obtenir la dernière date de l'extérieur. Map .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X