假设a
类型为ArrayList<T>
,这三者之间是否存在差异? (除了编译器抱怨#3中未经检查的操作这一事实。)
1
ArrayList<T> a1 = new ArrayList<T> (a);
2
ArrayList<T> a2 = new ArrayList<T> ();
a2.addAll (a);
3
ArrayList<T> a3 = (ArrayList<T>) (a.clone());
答案 0 :(得分:1)
克隆创建一个新实例,保存相同的元素。 Clone适用于Collections。所以最好不要使用它们。
ArrayList<T> a1 = new ArrayList<T> (a);
是浅色副本,速度相对较快。
此Thread可能会帮助您进一步