【发布时间】:2018-05-11 04:08:00
【问题描述】:
哈希图需要 O(1) 来获取或删除内容。如果我想对它进行排序,Collections.sort() 将花费 nlogn 时间。如果我改用树形图,它会在添加它们时对它们进行排序,这样我就不必花费 nlogn 排序,但它需要 nlogn 查找内容。因此问题是我是否可以手动控制 hashmap put 方法,使其不使用 hashcode 方式,而是对它们进行可比较的排序?我正在为一个使用 hashmap 进行许多插入和删除以及许多排序的程序寻求 O(1)。
【问题讨论】:
-
TreeMap是 O(log n) 检索,而不是 O(n log n)。 -
但要回答你的问题:你不能。您不可能对所有事情都拥有(预期的)O(1),并且也有一个排序的数据集。
-
TreeMap有什么问题?
标签: java sorting optimization hashmap treemap