java arraylist 复制_如何克隆ArrayList和复制其内容?
Java 8提供了一种新的方法来调用元素狗上的复制构造函数或克隆方法:溪流, 兰巴斯和收藏家.
复制构造函数:List clonedDogs = dogs.stream().map(Dog::new).collect(toList());
表达Dog::new称为a方法参考..它创建一个函数对象,该对象调用Dog以另一只狗为论据。
克隆方法[1]:List clonedDogs = dogs.stream().map(d -> d.clone()).collect(toList());
得到一个ArrayList结果
或者,如果你必须得到一个ArrayListBack(万一您以后想修改它):ArrayList clonedDogs = dogs.stream().map(Dog::new).collect(toCollection(ArrayList::new));
更新列表
如果不需要保留dogs列表,您可以使用replaceAll方法并更新列表:dogs.replaceAll(Dog::new);
所有的例子都假设import static java.util.stream.Collectors.*;.
收集器ArrayLists
上一个示例中的收集器可以变成util方法。既然这是一件很平常的事,我个人喜欢它又短又漂亮。就像这样:ArrayList clonedDogs = dogs.stream().map(d -> d.clone()).collect(toArrayList());public static
Collector> toArrayList() {
return Collectors.toCollection(ArrayList::new);}
[1]关于CloneNotSupportedException:
若要使此解决方案运行在clone方法Dog 绝不能宣布它抛出CloneNotSupportedException..原因是map不允许抛出任何已检查的异常。
就像这样:// Note: Method is public and returns Dog, not Object
@Override
public Dog clone() /* Note: No throws clause here */ { ...
不过,这不应该是个大问题,因为这是最好的做法。(效果Java例如,给出这个建议。)
感谢古斯塔沃注意到这一点。
PS:
如果您发现它更漂亮,您可以使用方法引用语法来做完全相同的事情:List clonedDogs = dogs.stream().map(Dog::clone).collect(toList());
java arraylist 复制_如何克隆ArrayList和复制其内容?相关推荐
- mysql innodb 数据复制_快速将InnoDB表复制到另一个实例
此过程演示如何将常规InnoDB表从正在运行的MySQL服务器实例复制 到另一个正在运行的实例.可以使用具有微小调整的相同过程在同一实例上执行完整表还原. 在源实例上,创建一个表(如果不存在): my ...
- mysql ab复制_实现mysql的ab复制(a-b-b,a-b-c)
实验环境准备: 三台虚拟机,IP分别为master: 192.168.2.1 slave:192.168.2.2 slave1:192.168.2.3 将192.168.2.1的主机做为mys ...
- c花体复制_花式字体大全可复制 花式字体转换器
求可复制花体字? 1.windows系统的字体文件都放在这个文件夹下:C:\WINDOWS\Fonts,首先打开此文件夹. 2.虽然在此文件夹下右键单击字体文件的菜单中无复制粘贴功能,但是却能使用&q ...
- 像中文的罗马音字体复制_罗马音大全可复制汉字免费版下载-罗马音大全可复制吊汉字app在线生成版v1.1.2 手机版-007游戏网...
罗马音大全可复制吊汉字app在线生成版,是一款拥有各种好看文字的在线生成软件,软件功能强大,用户在线操作后即可生成各种好看的文字,用户可直接复制当作游戏名使用,能够有效的展现出自己独有的风格. 罗马音 ...
- 像中文的罗马音字体复制_罗马音大全可复制app中文下载
罗马音大全可复制app是一款很好用的更改游戏ID的一款软件,这里有着独具特色的游戏名字,有着别人羡慕的游戏名字,有着大家喜欢的游戏名字,在这里是可以到你更改游戏的名字的,一款很好用的游戏辅助的软件,而 ...
- 罗马音平假字复制_罗马音平假名可复制吊字
罗马音平假名可复制吊字是一款游戏昵称生成器软件,用户可以使用这款软件来作出一些十分稀有的游戏id,有了全新的id之后你在游戏就能够瞬间变得更加的有个性,能够和别人与众不同,能够让对手和队友都羡慕不已, ...
- 手机qq表白代码大全可复制_网页内文字无法复制怎么办?一分钟看懂这些方法,让你随意复制...
现在的生活中,无论你是一名上班族还是学生或者什么职业,遇到不会的问题,总是需要上网查资料,找到某些好用的资料,却因为某些原因需要付费才能复制文字,那么面对网页内文字无法复制怎么办? 小酱就来教你如何免 ...
- python递归实现文件复制_在python中递归复制文件或目录
python似乎有复制文件的功能(如shutil.copy)和复制目录的功能(如shutil.copytree),但我没有找到同时处理这两者的功能.当然,检查您是想复制一个文件还是一个目录是很简单的, ...
- 罗马音平假字复制_罗马音大全可复制app下载-罗马音大全片假名平假名可复制汉字软件 _5577安卓网...
罗马音大全可复制app下载,这是一款能生成各种趣味单字id的生成器辅助,韩文.繁体字.罗马音片假名等文字都支持,软件安全无毒,使用方式简单,玩家一键就能生成与众不同的名字,欢迎下载体验! [软件详情] ...
最新文章
- java-分支重载以及构造方法
- ibtmp1文件过大
- 更好的内存管理-jemalloc (redis 默认使用的)
- 得到文件的服务器路径,如何获取服务器上的路径?
- git 修改历史提交信息
- AI基础:Python开发环境设置和小技巧
- kiss原则包括什么_和女孩牵手与kiss的具体方法
- 2019年第十届蓝桥杯 - 省赛 - C/C++大学B组 - D. 数的分解
- sun8134的Blog
- 论文笔记_S2D.73_ICCV2021_单目深度估计的可解释深度网络研究
- 批量自动付款(京东)
- CISSP工资百万, 认证培训2899美元,是不是太高?
- 隐马尔可夫模型拼音汉字输入法
- ueditor编辑器二次开发与优化
- 计算机等级考试:IE地址栏不见了 怎么让消失了的IE地址栏神奇的再次出现。?
- 高洛峰mysql_【干货】MySQL 安装与安全优化
- 微信公众号只能设置两个网页授权域名的解决方案
- 面向对象程序有哪些优点呢?
- wordpress实时在线聊天室
- C#、打开basler相机
热门文章
- 自适应网站适合什么行业
- 用于设定表格样式的附加css,Dreamweaver使用CSS样式表设置网页文本格式
- C# 使用Vlc播放视频或者监控
- 无法加载静态的图片Failed to load resource: the server responded with a status of 404 (Not Found)
- 聊天机器人—简介(一)
- STM32+ESP-01对接阿里飞燕平台
- java not equal_Java CriteriaBuilder.notEqual方法代码示例
- IOS开发(17)IOS 使用LBXScan框架开发扫一扫功能
- Unity shader 关于卡通渲染阴影闭塞的实现
- IEEE letter,magazine,journal/transaction