在一个项目中,我需要删除键值大于某个键的所有对象(键类型是Date,如果重要的话).
据我所知,用Java实现的TreeMap是一个红黑树,它是一个二叉搜索树.因此,在删除子树时我应该得到O(n).
但除了制作尾部视图并逐个删除之外,我找不到任何方法来执行此操作,这需要O(logn).
有没有实现这个功能的好主意?我相信treeMap是正确使用的数据结构,应该能够做到这一点.
提前致谢
解决方法:
非常简单.不是逐个删除条目,而是使用Map.clear()删除元素.在代码中:
map.tailMap(key).clear();