首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

数据库查找数据,用Iterator遍历数据发现的有关问题

2011-12-03 
数据库查找数据,用Iterator遍历数据发现的问题代码如下:while(rs.next()){MapmapnewHashMap()for(inti1

数据库查找数据,用Iterator遍历数据发现的问题
代码如下:
while   (   rs.next()   )
{
    Map   map   =   new   HashMap();
        for   (   int   i   =   1;   i   <=   rsmd.getColumnCount();   i++   )
        {
        map.put(rsmd.getColumnName(i),   rs.getObject(i));
        }
    ls.add(map);
}

for   (int   i=0;i <ls.size();i++   )
{
Map   map   =   (Map)ls.get(i);
for   (Iterator   it=map.keySet().iterator();it.hasNext();)  
{
String   column_name=it.next().toString();
System.out.println(column_name);
System.out.println(map.get(column_name).toString());
}
}
显示出来的结果,表中的第一个字段跑到了最后去了,怎么样解决呢

[解决办法]
map是一种无序的数据结构,把它iterator得出的还是无序集
用ArrayList应该可以解决把,直接用index
[解决办法]
HashMap 是根据 hashcode 来排序的,没有规律可言,可以采用顺序的 LinkedHashMap
[解决办法]
JAVA API 说:
...基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

热点排行