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

Nik*_*ieb 5 java treemap

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

 TreeMap<Instant, HashMap<Type, Double>>
Run Code Online (Sandbox Code Playgroud)

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

干杯

Jon*_*eet 2

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

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

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