Java 如何从树映射中删除第一个元素?

Java 如何从树映射中删除第一个元素?,java,dictionary,treemap,Java,Dictionary,Treemap,我需要实现一个包含最多32个值的容器,其中元素按键排序。在C++中,它很容易,因为每个地图都是按它的键排序的,在java中我不确定。p> 所以我读了一些,并带来了一个树形图 如何有效地从树映射(第一个)中删除最旧的元素 谢谢 使用,它有方法。你说的 这里的键是一个“sequenceNumber”,它在同一个循环中递增 它通过树形图表示 映射根据其键的自然顺序进行排序,或者由映射创建时提供的比较器进行排序,具体取决于使用的构造函数 因此,排序后可以轻松删除第一个元素 例如: TreeMap<

我需要实现一个包含最多32个值的容器,其中元素按键排序。在C++中,它很容易,因为每个地图都是按它的键排序的,在java中我不确定。p> 所以我读了一些,并带来了一个树形图

如何有效地从树映射(第一个)中删除最旧的元素

谢谢

使用,它有方法。

你说的


这里的键是一个“sequenceNumber”,它在同一个循环中递增

它通过树形图表示

映射根据其键的自然顺序进行排序,或者由映射创建时提供的比较器进行排序,具体取决于使用的构造函数

因此,排序后可以轻松删除第一个元素

例如:

TreeMap<Integer, String> map = new TreeMap<>();

map.put(1, "ac");
map.put(2, "ef");
map.put(3, "bd");

map.remove(map.firstKey());
TreeMap map=newtreemap();
地图放置(1,“ac”);
图.put(2,“ef”);
地图放置(3,“bd”);
map.remove(map.firstKey());

“最老的”!==“第一个”?你到底想放什么,以什么样的顺序,你想删除什么元素?
map.iterator().next().remove()
map.remove(map.firstKey())
。如果“最旧的”是指访问或插入顺序,那么您可能需要的是
LinkedHashMap
,而不是
TreeMap
,TreeMap不是按照您放置它们的顺序排序的。它按键值对它们进行排序。因此,如果不是排序后树状图中第一个位置的,则不能真正删除最旧的一个。这里的关键是在同一循环中递增的“sequenceNumber”。map.push(sequenceNumber++,myobject);类似这样的东西,但我需要对它进行排序,因为它不总是排序的,对吗?是的,但由于32是一个小值,排序应该足够快。每次需要排序表示时都要执行此操作。RemoveedeStantry不会以任何方式更改映射,它只返回false,不执行任何操作。这张地图必须盖好。检查javadoc(示例使用)如何操作。