gpt4 book ai didi

java - 如何*轻松*地克隆容器(例如 ArrayList)?使用.clone() 是错误的吗?

转载 作者:搜寻专家 更新时间:2023-11-01 04:01:34 24 4
gpt4 key购买 nike

我的,也许是天真的,克隆 ArrayList( vector 替换)的解决方案是

ArrayList<Double> alBis = (ArrayList<Double>) alOriginal.clone();

考虑到因为数组包含不可变的 double ,所以我不需要克隆它们,但只能克隆容器。

当 clone() 返回一个对象时,我将类型转换放在那里,但随后-Xlint 提示这是一个未经检查的转换。

那么,现在呢?用 supressWarnings 忽略它?创建一个新的 ArrayList并用紧凑型复制原始元素?任何类似的库方法Arrays.copyOf()?

我读了Unchecked cast warning但公认的方式非常复杂。

最佳答案

clone()有重大缺陷,请参阅 this Question以供引用。不要使用它!

相反,所有标准集合都有复制构造函数。使用它们:

List<Double> original = // some list
List<Double> copy = new ArrayList<Double>(original);

引用:

关于java - 如何*轻松*地克隆容器(例如 ArrayList)?使用.clone() 是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5094583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com