TreeMap的不可修改视图是否保留了密钥排序?

时间:2014-04-27 09:11:44

标签: java map immutability treemap unmodifiable

假设我有TreeMap<Long,Long> map。我需要从getter中查看不可修改的版本,因此我返回Map<Long,Long> return Collections.unmodifiableMap(map);

但是,我需要使用与TreeMap<Long,Long>时相同的键顺序返回它。我是否可以保证在从Map创建时,在此不可修改的TreeMap中,密钥的顺序是相同的?

2 个答案:

答案 0 :(得分:3)

这是一个观点。基础数据结构相同

答案 1 :(得分:2)

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

值得注意的是,尽管视图是不可修改的,但是底层地图仍然可以突变,并且这些突变将反映在视图中。开发人员可以引入错误,认为不可修改的地图是原始地图的不可变副本,而不仅仅是不可修改的地图。