JAVA中List.addAll的基本语法与用法详解
List.addAll() 方法是 Java 中 List 接口提供的一个用于向一个 List 集合中添加另一个 List 集合中所有元素的方法。该方法可以方便地将一个 List 集合中的元素添加到另一个 List 集合中,从而使得代码变得更加简洁,功能更加优秀。
一、使用List.addAll方法的基本语法
public boolean addAll(Collection c)
上面是 List.addAll()
方法的基本语法,其中 Collection c
表示需要添加到 list 集合中的元素来源,该参数是一个 Collection 集合,也就是说, List.addAll()
方法的参数是一个 Collection 类型的参数。
List.addAll 方法遍历指定集合中的所有元素,并将它们逐个添加到调用该方法的列表的末尾。
它利用了列表的可变性质,通过修改列表本身来添加新的元素。
二、作用:
连接两个列表,将一个列表的所有元素添加到另一个列表的末尾。
从一个集合中添加多个元素到列表中。
注意事项:
.
添加的元素顺序与集合中元素的迭代顺序一致。 如果列表是有序的(如 ArrayList),则添加的元素将按照它们在集合中的顺序进行排列。
.
调用 addAll 方法会修改原始列表,将新元素添加到其末尾,而不创建一个新的列表对象。
.
如果集合中存在 null 元素,它们也会被添加到列表中。
.
注意避免出现循环引用的情况,比如在添加元素时不要将列表本身作为元素添加到自身中。
三、List.addAll方法的返回值
List.addAll() 方法的返回值为 boolean 类型,并且该返回值表示向集合中添加元素的操作是否成功。
如果该方法成功添加了新元素,返回值为 true;如果没有成功添加新元素,则返回值为 false。
四、使用List.addAll方法添加元素
我们通过 List.addAll() 方法可以方便地向一个 List 集合中添加另一个 List 集合中所有元素。下面是一个使用示例:
import java.util.ArrayList; import java.util.List; public class ListAddAllExample { public static void main(String[] args) { List list1 = new ArrayList<>(); list1.add("a"); list1.add("b"); List list2 = new ArrayList<>(); list2.add("c"); list2.add("d"); list1.addAll(list2); System.out.println(list1); } }
输出结果为 [a, b, c, d]
。
当list中有空元素的时候,如下图所示。
五、使用List.addAll方法的注意事项
1、参数不能为空
List.addAll() 方法接受的参数不能为空,如果传入的参数为 null,那么该方法会抛出 NullPointerException 异常。
2、List集合的初始大小要足够
当 List.addAll() 方法被调用时,List 集合的大小会随之增加。因此,在使用该方法前,应确保 List 集合的大小足够容纳需要添加的元素。
3、List集合的元素类型必须与需要添加的元素类型相同
List.addAll() 方法不能添加不同类型的元素,如果尝试向 List 集合中添加不同类型的元素,则会抛出 ClassCastException 异常。
附:java中List的addAll方法顺序
在写实验的时候,想将一个集合中的元素全部都添加到另一个集合中,为了不增加时间复杂度,拒绝采用迭代时一个一个添加的方法;被身边的大佬提醒,可以使用addAll方法,才恍然。但是,在列表向列表中加入元素时,加入的顺序是什么样的呢?为此做了下面的一个小测试:
试验
新建一个list列表(为了方便观察加入顺序,就简单让其存储数字的字符串形式了)向其中加入0-99这100个数字;然后继续创建要加入的列表list2,向其中加入一个元素;最后将list中的元素采用addAll的方法加入list2中,检测输出的结果顺序。代码如下:
List<String> list = new ArrayList<>(); for (int i = 0; i < 100; i++) { list.add(i + " "); } List<String> list2 = new ArrayList<>(); list2.add("a"); list2.addAll(list); System.out.println(list2);
上述代码的输出为:
[a, 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 , 93 , 94 , 95 , 96 , 97 , 98 , 99 ]
由此可见,addAll方法加入的列表元素的顺序是按照原来的顺序向后加入的。
结语
本篇文章介绍了 List.addAll()
方法的基本语法、返回值、使用方法及注意事项。通过本文的介绍,相信大家已经对于该方法的使用有了一定的了解和掌握。
到此这篇关于JAVA中List.addAll的基本语法与用法的文章就介绍到这了,更多相关JAVA List.addAll用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Spring多租户数据源管理 AbstractRoutingDataSource
本文技术了Spring多租户数据源管理 AbstractRoutingDataSource,下文详细内容介绍,需要的小伙伴可以参考一下2022-05-05SpringMVC DispatcherServlet组件实现解析
这篇文章主要介绍了SpringMVC DispatcherServlet组件实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-03-03
最新评论