List集合中的add和addAll的区别

List集合中的add和addAll的区别

一,前言:

在工作中, 我们用的比较多的就是集合就是list集合和map集合了。特别是如果只是存储多个对象,那list真实再好用不过了。
我们平时在添加元素的时候用的最多的就是add()方法,而 对于添加元素其实还要个方法就是addAll() ,那这两者都是用来作为一个添加元素的存在,又有什么区别和联系呢?

二,List中的add和addAll方法:

在jdk中的官方文档中,是这样描述的:
在这里插入图片描述

2.1 区别:
  1. 可以看到,add方法是将元素可以插在指定的位置,如果参数只有一个的话就默认插在队列的尾部,而对于addAll方法,可以看其实作用差不多,但是参数必须为Collection 集合。
  2. add方法参数为泛型E,所以他是支持任意类型的,但是这里要注意的一点是,如果你使用add方法并且传的参数为集合,那么其实 list集合会把这个参数中的集合当做一个整体,添加到原本的集合中。
    而addAll方法,则会把参数里面的集合给分别放进原本的集合中;
2.2 源码:

在这里插入图片描述
可以看到实际添加功能是在它的父类里面的addAll方法中实现的。
在这里插入图片描述
现在它的原理就很简单了,它是通过一个forEach 循环遍历后得到参数集合中的每个元素,在循环里面再分别调用add方法来实现这个功能。
看到这是不是恍然大悟,现在叫你自己写,你还写不出来吗?

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值