3

假设我有一个TreeMap<Long,Long> map. 我需要从 getter 查看不可修改的版本,所以我返回 a Map<Long,Long>of return Collections.unmodifiableMap(map);.

但是,我需要以与TreeMap<Long,Long>. 我可以保证在所有情况下,Map从 a 创建时,在这个不可修改的情况下,键的顺序都是相同的TreeMap吗?

4

2 回答 2

3

是的

这是一个视图。底层数据结构相同

于 2014-04-27T09:14:11.813 回答
2

不可修改的映射只是原始映射的一个包装器,它在调用 mutator 时抛出异常,所有其他方法都是源映射的有效代理。

值得注意的是,虽然视图是不可修改的,但底层映射仍然可以被变异,这些变异将反映在视图中。开发人员可能会引入错误,认为不可修改的地图是原始地图的不可变副本,而不是简单的不可修改的视图。

于 2014-04-27T09:23:31.190 回答