【发布时间】:2013-10-18 11:32:23
【问题描述】:
是否有任何 Java 库具有已排序的 Map(例如 TreeMap)但能够替换 keys?例如,我正在寻找可以替代treeMapInstance.firstKey() 的东西。速度是相当重要的,这就是为什么我不是一个存储值、删除然后将值放回新键中的人。
在我的应用程序中,我可能有一个对象,例如
TreeMap<Long, Double> foo = new TreeMap<Long, Double>();
有时我想更改foo 中的键而不更改关联值。
foo.put(1l, 1.0);
foo.put(2l, 2.0);
在上面的例子中,我怎样才能有效地将key 1l 更改为5l?
【问题讨论】:
-
您的具体功能要求是什么?
-
TreeMap 的结构反映了其键之间的比较结果。改变其中一个键的值可能会破坏其速度所依赖的不变量。
-
“替换键”是什么意思?举个例子
-
如果你关心速度,删除和插入的速度和重命名是一样的。因为这些值是排序的(通常在树中)并且重命名意味着它们必须将它们从它们所在的位置删除并添加到它应该使用新键的位置..
-
以 2l 作为现有键将 1l 更改为 5l 需要重新构建树。 1l 属于 2l 的左边。 5l 属于 2l 的右边。
标签: java map replace treemap sortedmap