【发布时间】:2017-04-07 07:14:44
【问题描述】:
将一个arraylist分配给另一个和在两个arraylist之间使用addAll方法有什么区别?
1 > arrayList = arrayList; //应该将后面的arrayList的值赋给第一个。
2> arrayList.addAll(arrayList) //将后面列表的所有数据添加到第一个。
第一个完全替换列表中的数据? 第二个用于在列表中附加数据(如果已经有的话)???
如果我在没有为第一个列表分配任何数据的情况下执行 arrayList.add(arrayList),它会插入任何数据吗?
我做了以下代码进行测试,发现了我不知道的结果。
secondList.add("1");
secondList.add("2");
firstList = secondList;
Log.i("CHECK","first list = "+ firstList);
firstList.addAll(secondList);
Log.i("CHECK","Firs list add : "+firstList);
firstList.clear();
firstList.addAll(secondList);
Log.i("CHECK","Firs list add 2 : "+firstList);
结果是:
CHECK: first list = [1, 2]
CHECK: Firs list add : [1, 2, 1, 2]
CHECK: Firs list add 2 : []
我希望最后一个日志的结果如下:[1,2]
如docs.oracle.com中所述
addAll- 将指定集合中的所有元素附加到 此列表的末尾,按照指定的返回顺序 集合的迭代器。
如果列表中没有数据?那么 addAll 会做什么呢?
【问题讨论】:
标签: java