ArrayList中存儲數組時需要註意到的問題
阿新 • • 發佈:2018-10-28
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中存儲數組時需要註意到的問題