【发布时间】:2016-01-01 16:14:57
【问题描述】:
我需要实现一个包含最多 32 个值的容器,其中元素按键排序。在 C++ 中这很容易,因为每个地图都按其键排序,在 Java 中我不太确定。
所以我读了一些并附带了一个 TreeMap。
如何有效地从 TreeMap(第一个)中删除最旧的元素?
谢谢!
【问题讨论】:
-
“最旧的” !== “第一个”?你到底想放什么,以什么样的顺序,你想删除什么元素?
-
map.iterator().next().remove()或map.remove(map.firstKey())。如果“最旧”是指访问或插入顺序,您可能需要LinkedHashMap,而不是TreeMap -
TreeMap 不是按您放入它们的顺序排序的。它按键值对它们进行排序。所以你不能真正删除最旧的,如果它不是在排序后在你的 Treemap 中的第一个位置。
-
这里的关键是一个'sequenceNumber',它在同一个循环中递增。 map.push(sequenceNumber++, myobject);类似的东西
标签: java dictionary treemap