栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何复制Java收藏夹列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何复制Java收藏夹列表

呼唤

List<String> b = new ArrayList<String>(a);

创建的浅表副本

a
b
。所有元素将以
b
与它们完全相同的顺序存在
a
(假设元素具有顺序)。

同样地,

// note: instantiating with a.size() gives `b` enough capacity to hold everythingList<String> b = new ArrayList<String>(a.size());Collections.copy(b, a);

还创建的浅表副本

a
b
。如果第一个参数的 容量
(大小)
b
不足以容纳所有的元素,则它将抛出。期望工作不需要任何分配,如果有分配,那么它将抛出该异常。这是一种优化的方法,要求将复制的集合预先分配(),但由于考虑到基于构造函数的替代方法(如上所示)没有奇怪的副作用,因此需要进行检查,因此我通常认为该功能不值得。
__
a``IndexOutOfBoundsException
Collections.copy
b


要创建深层副本,必须

List
通过任一机制对基础类型具有复杂的知识。对于
String
s(它在Java中是不变的)(甚至是.NET),您甚至不需要深层副本。对于
MySpecialObject
,您需要知道如何对其进行深拷贝,而这不是一般操作。


注意:最初接受的答案是

Collections.copy
在Google中获得最高结果的答案,并且完全没有错,正如评论中指出的那样。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449503.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号