list+map

通常读取数据库表中的一条记录后,可以存储于Hashmap变量中;
若要读取多条记录,则依次读取每个记录时,先用Hashmap变量存取,然后将Hashmap加到ArrayList变量中。

注意:

每次读取一条记录的时候,应该new一个Hashmap变量,不能用同一个Hashmap变量存取不同的记录,否则ArrayList变量中的每个对象指向的地址均为同一个地址,即最后ArrayList变量中所有的值均指向最后一条记录。

代码示例如下:

List list=new ArrayList();

Hashmap map=new Hashmap();

while(rs.next()){

map("key1",rs.getString(1));

map("key2",rs.getString(1));

...

list.add(map);

}

上面代码就会出现list变量中存取的所有记录是一样的,代码应该改为如下:

List list=new ArrayList();

Hashmap map=null;

while(rs.next()){

map=new Hashmap();

map("key1",rs.getString(1));

map("key2",rs.getString(1));

...

list.add(map);

}

原文地址:https://www.cnblogs.com/luori719/p/5758105.html