需要有关Hashmap和resultset的指导

时间:2013-09-10 10:58:47

标签: java hashmap resultset

结果集将返回不同的数据集,例如:

> Winter    1001    112 
> Summer    1001    112 
> Autumn    1001    110 
> Spring    1001    111
> Winter    1002    112 
> Summer    1002    116 
> Autumn    1002    110 
> Spring    1002    115
> Winter    1003    112 
> Autumn    1003    111 
> Spring    1003    115 
> Summer    1003    112

我需要显示的数据采用以下格式:

  

我得到的数据[冬,夏,秋,春] [data1] [112,112,110,111]   [data2] [112,116,110,115] [data3] [112,111,115,112]

我正在编写代码,这就是我所拥有的东西

if (connection != null) {
                System.out.println("Got DB Connection!");
                String selectTableSQL = sql;
                Statement statement = connection.createStatement();
                ResultSet rs = statement.executeQuery(selectTableSQL);
                while (rs.next()) {
                    caltList.add("\""+rs.getString(1)+"\"");
                    dataList.add(rs.getString(3));
                }

                }

String result = "";
String gotData = "I got data "
result = String.format(res,gotData,caltList,dataList);

有人可以使用Hashmap或某种方法进行指导..对java来说是新手......并且无法继续进行

1 个答案:

答案 0 :(得分:0)

我想我会用LinkedHashMap<Integer, HashMap<String, Integer>填充ResultSet这样的数据:

LinkedHashMap [
  => 1001
       => "Winter" => 112
       => "Summer" => 112
       => "Autumn" => 110
       => "Spring" => 111

  => 1002
       => "Winter" => 112
       => "Summer" => 116
       => "Autumn" => 110
       => "Spring" => 115
  => ...
]

然后在第二个循环中,我将创建您期望的输出。 ([winter,summer,Autumn,Spring] [data1] [112,112,110,111] [data2] [112,116,110,115] ...])。

这就是我选择LinkedHashMap的原因,因为它保留了添加条目的顺序。因此可以确保data1是地图中的第一个条目,依此类推。