1. 程式人生 > >java中list的add與addall方法區別

java中list的add與addall方法區別

在做專案時我遇到過這樣的問題,java.lang.ClassCastException: java.util.ArrayList cannot be cast to com.alibaba.getter.jstorm.biz.domain.Page。知道是型別轉換錯誤,但是不知道是那的問題,最後通過debug,發現了嗎問題,主要是自己基礎知識不牢固。

如果有多個已經被例項化的List 集合,想要把他們組合成一個整體,並且,這裡必須直接使用List 自身提供的一個方法List.addAll(),否則使用了List.add()方法,則會輸出不正常的資訊。

     這裡不能簡單的使用List.add()方法,如果使用了List.add()方法,程式只能找到相應往List中新增的List 集合個數,而不會返回相應的全部結果集。

    這裡就需要明白List.add() 和 List.addAll() 的區別了、、、

    1>List.add() 方法,也是往List 中增加list,但是,它增加的是一個List 例項。如果,往容器中增加的那個List 例項從資料庫中查到的結果有5條,不過,如果使用了List.add(list1);程式只會輸出一條記錄。原因就是上面說的。List.add() 加List 例項,它會把這個看一個例項,而不是把那個看成一個容器。

    例如:List.add(list1),List.add(list2);List.add(list3),  這時,List.size 它的大小是3。

    List.add() 的含義就是:你往這個List 中新增物件,它就把自己當初一個物件,你往這個List中新增容器,它就把自己當成一個容器。

   2>List.addAll()方法,就是規定了,自己的這個List 就是容器,往裡面增加的List 例項,增加到裡面後,都會被看成物件。

    這時:List.add(list1),List.add(list2);List.add(list3),  這時,List.size 它的大小就是所有list 例項化後的總數和總的記錄數。

    因此,當需要把多個List 例項放到一起的時候,必須使用List.addAll()方法。