什么时候对TreeMap和ConcurrentSkipListMap进行排序?

时间:2019-03-26 18:45:51

标签: java

我有一个Map,为此我提供了一个已实现比较器的键类。比较器部分基于时间,因此顺序可能会随着时间的流逝而改变。问题是:在插入地图时或在创建迭代器时何时进行对象之间的比较?

1 个答案:

答案 0 :(得分:3)

树基于插入。

另外,请注意Map的javadoc中的以下警告:

  

注意:如果将可变对象用作地图键,则必须格外小心。 如果更改[key]对象的值时未指定地图的行为,而该对象是地图中的键时会影响等值比较。

因此,比较方法应该是稳定的,即不应随时间的推移而改变。

密钥每次更改时,都必须在更改之前将其删除,并在更改之后重新添加。