代码如下:
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());
}
}
显示出来的结果,表中的第一个字段跑到了最后去了,怎么样解决呢

解决方案 »

  1.   

    map是一种无序的数据结构,把它iterator得出的还是无序集
    用ArrayList应该可以解决把,直接用index
      

  2.   

    HashMap 是根据 hashcode 来排序的,没有规律可言,可以采用顺序的 LinkedHashMap
      

  3.   

    JAVA API 说:
    ...基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。
      

  4.   

    恩,最后采用了LinkedHashMap解决了问题,谢谢大家~
      

  5.   

    谢谢楼主给分楼主是我来 CSDN 四个月里结帖速度最快的一位了。