如何获取Treemap的最后n个元素

时间:2011-12-21 11:13:19

标签: java treemap

我有一个TreeMap,看起来像这样:

 TreeMap<Instant, HashMap<Type, Double>>

即时值表示一天中的小时数;对于每个传递的小时,一个值存储在我的地图中。 现在我想得到这张地图的最后24个元素(所以过去一天的小时数)。我怎么能这样做?

干杯

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

您可以使用descendingMap调用在地图上获取基本上相反顺序的视图,然后从中获取前24个条目(调用iterator等)。 (GuavaIterables提供了限制迭代等的有用方法。)

编辑:例如,要获取最后24个元素(以相反的顺序,并使用Guava),您可以使用:

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

答案 2 :(得分:0)

您可以将其设为SortedMap<LocalDate, SortedMap<Hours, Map<Type, Double>>>,以便从外部Map获取最新日期。