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方法加入的列表元素的顺序是按照原来的顺序向后加入的。

最后

最后总结一下:碰到一些不懂的API,与其问其他人,不如花一点时间写一个简单的测试。测试虽然简单,但记忆却更加深刻。

猜你喜欢

转载自blog.csdn.net/seriousplus/article/details/79975113