1. 程式人生 > >List的add方法與addAll方法的區別

List的add方法與addAll方法的區別

 

add是將傳入的引數作為當前List中的一個Item儲存,即使你傳入一個List也只會另當前的List增加1個元素
addAll是傳入一個List,將此List中的所有元素加入到當前List中,也就是當前List會增加的元素個數為傳入的List的大小

即addAll(Collection c)
   add(int index,Elelemt e)

--------------------------------------

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 例項放到一起的時候,要使用List.addAll()方法。

add是將傳入的引數作為當前List中的一個Item儲存,即使你傳入一個List也只會另當前的List增加1個元素
addAll是傳入一個List,將此List中的所有元素加入到當前List中,也就是當前List會增加的元素個數為傳入的List的大小

即addAll(Collection c)
   add(int index,Elelemt e)

--------------------------------------

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 例項放到一起的時候,要使用List.addAll()方法。