1. 程式人生 > >List中Add()與AddAll()的區別

List中Add()與AddAll()的區別

只有一個 pri bsp str 方法 實例 合作 ger dal

我們在開發過程中經常會使用到List<Object> list=new ArrrayList<>(); 這個集合,Object 也可以是String、Integer等。

當我們需要把list集合中的數據放到另外一個集合中(List、Set...),我們也許會使用循環遍歷然後將對象存入到新的集合中,這樣的方法確實可以實現效果,但是效率太低了。List中給我們提供了Add()、AddAll()二個方法可以幫我們解決這個問題。

List<String> list = new ArrayList<>();
List<List<String>> list1
= new ArrayList<>();
List<String> list2 = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
System.out.println(list);
list1.add(list);
System.out.println("add方法:"+list1);
list2.addAll(list);
System.out.println("addAll方法:"+list2);
運行結果:

[1, 2, 3]
add方法:[[1, 2, 3]]
addAll方法:[1, 2, 3]

由運行結果可以看出來,add();方法是將集合作為一個list實例插入到List集合中了,只有一個實例。

AddAll()方法則是相當於把 list 結果依此遍歷又重新插入到新的List集合中,所以新的List集合中仍然有3個實例對象。

list1與list2遍歷結果如下:

for (List list3 : list1) {
System.out.println("list1遍歷結果:"+list3);
}for (String list4 : list2) {
System.out.println("list2遍歷結果:"+list4);
}
結果:

list1 遍歷結果:[1, 2, 3]

list2 遍歷結果:1
list2 遍歷結果:2
list2 遍歷結果:3

List中Add()與AddAll()的區別