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


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

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

 1 List<String> list = new ArrayList<>();  2 List<List<String>> list1 = new ArrayList<>();  3 List<String> list2 = new ArrayList<>();  4 list.add("1");  5 list.add("2");  6 list.add("3");  7 System.out.println(list);    // [1, 2, 3]
 8 list1.add(list);  9 System.out.println("add方法:"+list1);  // add方法:[[1, 2, 3]]
10 list2.addAll(list); 11 System.out.println("addAll方法:"+list2);// addAll方法:[1, 2, 3] 

 

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

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

list1與list2遍歷結果如下:

 1 for (List list3 : list1) {  2     System.out.println("list1遍歷結果:"+list3);  3 }for (String list4 : list2) {  4     System.out.println("list2遍歷結果:"+list4);  5 }  6 //結果:  7 //list1 遍歷結果:[1, 2, 3]  8 //list2 遍歷結果:1  9 //list2 遍歷結果:2 10 //list2 遍歷結果:3

 

 

搬運自:https://www.cnblogs.com/ming-blogs/p/10655071.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM