我想使用 Java 9 中的新工厂方法创建一个不可变的 hashMapMap.ofEntries()
内联,例如:
Map<Integer, String> map = Map.ofEntries( Map.entry(1, "One"), Map.entry(2, "Two"), Map.entry(3, "Three"));
然后令我惊讶的是,我发现我无法以同样的方式创建不可变的 hashMap!例如,以下代码将不起作用。
HashMap<Integer, String> map = HashMap.ofEntries( //not work Map.entry(1, "One"), Map.entry(2, "Two"), Map.entry(3, "Three"));
然后,当我想检查工厂方法返回什么类型的地图时,我发现了以下注释:
调用者不应对返回实例的身份做出任何假设。
所以我的问题是,不可变映射的访问时间复杂度与 o(1) 的 hashMap 相同吗?如果不是,如何创建一个既不可变又同时访问 o(1) 的映射?如果可以内联创建那就最好了。
至尊宝的传说
相关分类