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

扫描二维码关注公众号,回复: 4423553 查看本文章

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()方法。

猜你喜欢

转载自www.cnblogs.com/konglxblog/p/10088052.html