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);
}