|
1
5
要判断某个东西是否真的发生了变化,唯一的方法是复制地图,并在稍后的时间将其与地图进行比较:
包装地图并覆盖
证明基于hascode的方法错误:
如果地图包含
例如
证明基于包装器的方法错误:
|
|
2
2
您可以比较其“哈希值”
JavaDoc声明:
|
|
|
3
1
或者,您可以将映射包装到一个包装器类中,该类记录最后修改的时间,无论是什么。使用该值,您可以检查是否有修改。 如果您决定使用hashCode值来解决此问题,则应忽略可能存在哈希冲突的可能性。 但在回答这个问题时,我认为有一个重要的方面需要考虑——钥匙的数量。如果没有太多的键,“copy construction+equals”方法将是基于包装器的解决方案的一个很好的替代方案。(先创建和复制旧的副本,然后将其与地图的当前状态进行比较)但是如果键太多,这两个操作可能会产生很大的开销。 |
|
|
4
0
你可以复制地图。
然后检查旧映射是否包含与当前映射相同的键/值绑定,假设值正确实现了“equals”。
|
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |