相关疑难解决方法(0)

如何克隆ArrayList并克隆其内容?

如何克隆ArrayList并在Java中克隆其项目?

例如,我有:

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....
Run Code Online (Sandbox Code Playgroud)

我希望那些物品clonedList与狗列表中的物品不同.

java collections clone deep-copy

258
推荐指数
8
解决办法
41万
查看次数

Deep clone实用程序推荐

是否有任何用于深度克隆java集合的实用程序:

  • 数组
  • 清单
  • 地图

注意:在不使用序列化的情况下更喜欢某些解决方案,但使用Object.clone()方法.我可以肯定我的自定义对象将实现clone()方法,并将只使用可克隆的java标准类...

java clone

72
推荐指数
6
解决办法
8万
查看次数

如何在Java 11中创建不可变的hashMap?

我想使用Java 9中的新工厂方法创建一个不变的hashMap内联Map.ofEntries(),例如:

Map<Integer, String> map = Map.ofEntries(
    Map.entry(1, "One"),
    Map.entry(2, "Two"),
    Map.entry(3, "Three"));
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我发现我无法以相同的方式创建不可变的hashMap!例如,以下代码将不起作用。

HashMap<Integer, String> map = HashMap.ofEntries( //not work
    Map.entry(1, "One"),
    Map.entry(2, "Two"),
    Map.entry(3, "Three"));
Run Code Online (Sandbox Code Playgroud)

然后,当我想检查工厂方法返回的地图类型时,发现以下注意事项

调用者不应对返回实例的身份做任何假设。

所以我的问题是,不可变映射的访问时间复杂度是否与o(1)的hashMap相同?如果不是,如何创建不可变且同时访问o(1)的映射?最好可以内联创建。

java dictionary hashmap immutability java-9

5
推荐指数
1
解决办法
197
查看次数