簡單描述:月讀別人的**,發現了乙個有意思的東西,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
List的add方法與addAll方法的區別
add是將傳入的引數作為當前list中的乙個item儲存,即使你傳入乙個list也只會另當前的list增加1個元素 addall是傳入乙個list,將此list中的所有元素加入到當前list中,也就是當前list會增加的元素個數為傳入的list的大小 即addall collection c add...
關於arrayList的add和addall
如果連線2個arraylist,比如a和b,如果直接寫a.addall b 有可能連線不上,最常見的方法是定義乙個新的arraylist c,再c.addall a 和c.addall b arraylist是乙個實現可變長陣列,繼承abstractlist類,實現所有的list介面,還實現了ran...
關於arrayList的add和addall
花了一周時間,重構了系統中最重要的一段下發列印邏輯的 理清了各型別間的呼叫關係,得意之際,測試告訴 資料異常了,花了5個小時的測試,終於發現了問題,用錯了arraylist的addall方法,下面列舉下add和addall方法。arraylist是乙個實現可變長陣列,繼承abstractlist類,...