我需要删除并从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)。

10-04 10:31
查看更多