位置:首页 > Java > Java List集合add与addAll方法区别详解及用法对比

Java List集合add与addAll方法区别详解及用法对比

时间:2026-08-21  |  作者:实验室老王  |  阅读:0

List集合中的add和addAll区别

一、前言

在开发工作中,List集合和Map集合几乎是出场率最高的两个数据结构。如果只是单纯地存储多个对象,List非常适合。

平时添加元素时,大家最常用的是add()方法。但实际上,还有一个同样用于添加元素的addAll()方法。

那这两者到底有什么区别?又分别适用于什么场景?下面来具体看看。

二、List中的add和addAll方法

先来看官方文档中的描述:

Ja vaList集合add和addAll方法有什么区别?一文详解

2.1 区别

  • add方法允许把单个元素插入到指定位置。如果只传一个参数,就默认添加到队列末尾。

  • addAll方法必须接收一个Collection集合作为参数,然后把整个集合中的内容添加进来。

  • add方法参数类型是泛型E,所以理论上支持任意类型。

  • 这里有一个容易踩坑的地方:如果使用add方法传入一个集合参数,List集合会把这个集合作为一个整体,直接添加到原集合中。

  • addAll则会把参数集合中的每个元素拆开,再分别放入集合。

2.2 源码

Ja vaList集合add和addAll方法有什么区别?一文详解

实际添加功能是在父类的addAll方法中实现的。看下源码就更清楚了。

Ja vaList集合add和addAll方法有什么区别?一文详解

原理其实很简单。它会通过一个forEach循环遍历参数集合,并在循环里逐个调用add方法完成添加。

也就是说,addAll本质上还是逐个元素添加。因此,每个元素都会被单独处理,而不是把整个集合作为一个单元放进去。

总结

这两个方法的核心区别在于:add是把参数当作一个整体元素添加进去,addAll是把参数集合里的每个元素拆开分别添加。

理解这一点后,在实际开发中就能避免很多意料之外的错误。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多