【发布时间】:2014-11-28 21:19:15
【问题描述】:
假设我有一个ConcurrentSkipListMap,我通过给它一个比较器来构造它,然后向它添加几个键值对。当我向地图添加一个键时,根据设计,它会根据提供给构造函数的比较器或它的自然顺序对值进行排序。但是,如果我修改地图中包含的键之一,列表是否会自行重新排序?
即
如果我有一张按名字排序的地图,我添加了"Alan" 和"Grace",它看起来像这样:
[0] "Alan"
[1] "Grace"
如果我然后更改 "Alan" -> "Turing" 列表会是什么样子
示例 A:
[0] "Turing"
[1] "Grace"
或者例子B:
[0] "Grace"
[1] "Turing"
这是记录在案的任何其他自动排序数据结构的行为吗?
【问题讨论】:
-
如何修改密钥?去掉旧的,然后装上新的?如果是这样的话 YES。
-
你如何定义“换钥匙”?
-
假设您的键是对象,如果您要遍历键集,您可以修改其中一个对象中的字段。
-
您的标题说明值修改排序。那不会发生。一切都取决于键的顺序。所以带有“Alan”的 Key[0] 仍然成为带有“Turing”的 Key[0] 的第一个条目
-
我在标题中使用了错误的术语,我已修复它
标签: java sorting data-structures map