1. 程式人生 > >ArrayList中存儲數組時需要註意到的問題

ArrayList中存儲數組時需要註意到的問題

ray count 解決 for lis spa list pre 創建

因為數組的地址是不會發生變化的,每次在數組中的內容改變後,將數組添加到ArrayList中時,會導致ArrayList中的每個內容都是最後添加進去的數據。案例如下所示:

Object []objs = new Object[count];
while(rs.next()){
                for(int i = 0; i < count; i++){
                    objs[i] = rs.getString(i+1);
                }
                al.add(objs);
            }

假設rs中有20個數據,那麽al中將會擁有20個rs最後的數據,解決的辦法是:

while(rs.next()){
Object []objs = new Object[count];
                for(int i = 0; i < count; i++){
                    objs[i] = rs.getString(i+1);
                }
                al.add(objs);
            }

這樣每次重新創建一個數組,它們的地址都是不一樣的,所以添加進去的引用也是不一樣的。

ArrayList中存儲數組時需要註意到的問題