我需要删除并从TreeMap
中获取第一个/最低元素。但是,叔叔,我忽略了某些事情,无法立即执行。
removedValue = treeList.remove(treeList.firstEntry().getValue());
那条线必须访问地图两次,但这似乎是要走的路。我认为这不会有太大的不同,因为添加了某些东西后地图会被排序,但是我希望它能起作用。
最佳答案
如果您需要同时删除和获取条目,则可以使用pollFirstEntry()
(假设您正在使用的变量的类型至少为NavigableMap
-但由于您使用的是firstEntry
,我想它是)。
T2 removedValue = null;
Map.Entry<T1, T2> entry = treeList.pollFirstEntry();
if(entry != null) {
removedValue = entry.getValue();
}
请注意
null
检查以免NPE如果映射为空(在这种情况下它将返回null
)。