簡單描述:月讀別人的代碼,發現了一個有意思的東西,list的一個方法,addAll(),然后就去度娘了一下,發現這個還挺有用的。
吐槽一下:為什么自己沒發現這個方法呢?因為平時自己寫list的時候,基本上都是手敲上去的list.add(),代碼提示都沒有仔細看,其實這是個挺壞的習慣,因為代碼提示會給出相關的方法,對於自己沒用過的方法,完全可以自己去查資料,或者親自實踐一下,調用這個方法,從而學到一些新的東西。
正經的:
add()是將傳入的參數作為當前List中的一個item元素存儲,即使你傳入一個ListOne也只會使當前的List增加1個元素(該元素就是listOne)
addAll()是傳入一個List,將此List中的所有元素加入到當前List中,也就是當前List會增加的元素個數為傳入的List的大小
addAll(Collection c)
此方法按照指定 collection 的迭代器所返回的元素順序,將該 collection 中的所有元素添加到此列表的尾部。如果正在進行此操作時修改指定的 collection ,那么此操作的行為是不確定的。(這意味着如果指定的 collection是此列表且此列表是非空的,那么此調用的行為是不確定的)。
C |
包含要添加到此列表中的元素的 collection |
return |
如果此列表由於調用而發生更改,則返回 true |
Throws |
NullPointerException: 如果指定的 collection 為 null
|
eg:
Collection result = new ArrayList();
Collection list = new ArrayList();
......
分析:
result.addAll(list);//把list中的每一個元素加到result中,result.size()==list.size()
result.add(list);//將list作為一個元素加到result中,則result.size()為1
大佬鏈接:https://www.cnblogs.com/wudage/p/6878096.html