List中Add()与AddAll()的区别
我们在开发过程中经常会使用到List<Object> list=new ArrrayList<>(); 这个集合,Object 也可以是String、Integer等。
当我们需要把list集合中的数据放到另外一个集合中(List、Set...),我们也许会使用循环遍历然后将对象存入到新的集合中,这样的方法确实可以实现效果,但是效率太低了。List中给我们提供了Add()、AddAll()二个方法可以帮我们解决这个问题。
List<String> list = new ArrayList<>();
List<List<String>> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
System.out.println(list);
list1.add(list);
System.out.println("add方法:"+list1);
list2.addAll(list);
System.out.println("addAll方法:"+list2);
运行结果:
[1, 2, 3]
add方法:[[1, 2, 3]]
addAll方法:[1, 2, 3]
由运行结果可以看出来,add();方法是将集合作为一个list实例插入到List集合中了,只有一个实例。
AddAll()方法则是相当于把 list 结果依此遍历又重新插入到新的List集合中,所以新的List集合中仍然有3个实例对象。
list1与list2遍历结果如下:
for (List list3 : list1) {
System.out.println("list1遍历结果:"+list3);
}for (String list4 : list2) {
System.out.println("list2遍历结果:"+list4);
}
结果:
list1 遍历结果:[1, 2, 3]
list2 遍历结果:1
list2 遍历结果:2
list2 遍历结果:3
List中Add()与AddAll()的区别的更多相关文章
- list add() 和 addall()的区别
http://blog.tianya.cn/post-4777591 如果有多个已经被实例化的List 集合,想要把他们组合成一个整体,并且,这里必须直接使用List 自身提供的一个方法List.ad ...
- ThinkPHP中:add()和addAll()的区别
1.add()是记录单条插入 // 添加一条数据 $User = M("User"); // 实例化User对象 $data['name'] = 'ThinkPHP'; $data ...
- List 的add()与addAll()的区别
add 是将传入的参数作为当前List中的一个Item存储,即使你传入一个List也只会另当前的List增加1个元素addAll 是传入一个List,将此List中的所有元素加入到当前List中,也就 ...
- 队列Queue中add()和offer()的区别?
区别:两者都是往队列尾部插入元素,不同的时候,当超出队列界限的时候,add()方法是抛出异常让你处理,而offer()方法是直接返回false
- 在 VS 类库项目中 Add Service References 和 Add Web References 的区别
原文:在 VS 类库项目中 Add Service References 和 Add Web References 的区别 出身问题: 1.在vs2005时代,Add Web Reference(添加 ...
- java Queue中 add/offer,element/peek,remove/poll区别
转自https://blog.csdn.net/u012050154/article/details/60572567 java Queue中 add/offer,element/peek,remov ...
- Calendar中add函数和roll函数的用法及区别
Calendar中add()和roll()函数的用法一.取某个时间点后的整点时刻.例如1984年7月7日15:23:05后的整点时刻即为1984-07-07 16:00:00.实现如下:Calenda ...
- ArrayList源码中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别
2018年7月22日09:54:17 JDK 1.8.0_162 ArrayList源码中EMPTY_ELEMENTDATA和DEFAULTCAPACITY_EMPTY_ELEMENTDATA的区别 ...
- java中List 和 Set 的区别
a. 特性 两个接口都是继承自Collection,是常用来存放数据项的集合,主要区别如下: ① List和Set之间很重要的一个区别是是否允许重复元素的存在,在List中允许插入重复的元 ...
随机推荐
- D16——C语言基础学PYTHON
C语言基础学习PYTHON——基础学习D16 20180927内容纲要: 1.JavaScript介绍 2.JavaScript功能介绍 3.JavaScript变量 4.Dom操作 a.获取标签 b ...
- 开发ASP.NET MVC 开发名片二维码生成工具 (原创)
在网上找了很多,都只能生成网址,不能生成名片二维码,于是自己动手. 第一步,写视图界面,主要代码如下: <script type="text/javascript"> ...
- CentOS 6(64-bit) + Nginx搭建静态文件服务器
Nginx搭建静态文件服务器 使用命令打开Nginx配置文件: sudo vim /etc/nginx/conf.d/default.conf 将配置改为: server { ...... ..... ...
- python解析json数据
现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...
- Windows下调试hadoop
1. 本地模式 本地模式下调试hadoop:下载winutils.exe和hadoop.dll hadoop.lib等windows的hadoop依赖文件放在D:\proc\hadoop\bin目 ...
- jQuery ajax请求错误返回status 0和错误error的问题
上周发现一个jQuery ajax请求错误返回status 0和错误error的问题,responseText是"error",状态码是0而不是200: $.ajax({ type ...
- 对称加密-AES
假设有一个发送方在向接收方发送消息.如果没有任何加密算法,接收方发送的是一个明文消息:“我是小灰”. 如果消息被中间人截获到,即使中间人无法篡改消息,也可以窥探到消息的内容,从而暴露了通信双方的私密. ...
- RocketMQ专题1:入门
RocketMQ入门 源码和应用下载 这里以RocketMQ的4.3.0版本为例,本地环境为windows10,jdk1.8, maven3.2.1. 源码下载地址: http://mirrors ...
- 开源方案搭建可离线的精美矢量切片地图服务-8.mapbox 之sprite大图图标文件生成(附源码)
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- html5标签属性translate
定义 translate 是指标签属性,不是css3样式规则transform的translate,说它的定义吧:规定是否应该翻译元素内容. 了解:translate是HTML5中的新属性 语法 &l ...