假设我有TreeMap<Long,Long> map
。我需要从getter中查看不可修改的版本,因此我返回Map<Long,Long>
return Collections.unmodifiableMap(map);
。
但是,我需要使用与TreeMap<Long,Long>
时相同的键顺序返回它。我是否可以保证在从Map
创建时,在此不可修改的TreeMap
中,密钥的顺序是相同的?
答案 0 :(得分:3)
是强>
这是一个观点。基础数据结构相同。
答案 1 :(得分:2)
不可修改的映射只是原始映射的包装器,它在调用mutator时抛出异常,所有其他方法都是源映射的有效代理。
值得注意的是,尽管视图是不可修改的,但是底层地图仍然可以突变,并且这些突变将反映在视图中。开发人员可以引入错误,认为不可修改的地图是原始地图的不可变副本,而不仅仅是不可修改的地图。