我有一个Map,为此我提供了一个已实现比较器的键类。比较器部分基于时间,因此顺序可能会随着时间的流逝而改变。问题是:在插入地图时或在创建迭代器时何时进行对象之间的比较?
答案 0 :(得分:3)
树基于插入。
另外,请注意Map
的javadoc中的以下警告:
注意:如果将可变对象用作地图键,则必须格外小心。 如果更改[key]对象的值时未指定地图的行为,而该对象是地图中的键时会影响等值比较。
因此,比较方法应该是稳定的,即不应随时间的推移而改变。
密钥每次更改时,都必须在更改之前将其删除,并在更改之后重新添加。