我需要实现一个容器,其中包含最多32个值,其中元素按键排序。在C ++中它有点简单,因为每个映射都按照它的键排序,在Java中我不太确定。
所以我读了一些并附带了TreeMap。
如何从TreeMap(第一个)中有效地删除最旧的元素?
谢谢!
答案 0 :(得分:2)
你说
这里的关键是'sequenceNumber',它在同一个循环中递增。
通过TreeMap documentation,它声明了
地图根据其键的自然顺序或地图创建时提供的比较器进行排序,具体取决于使用的构造函数。
因此您可以在排序后轻松删除第一个元素。
示例:
TreeMap<Integer, String> map = new TreeMap<>();
map.put(1, "ac");
map.put(2, "ef");
map.put(3, "bd");
map.remove(map.firstKey());
答案 1 :(得分:0)
使用LinkedHashMap,其方法为removeEldestEntry。