我的要求是将结果数据转换为对象形式,因为我需要在其他页面上传输数据,结果集不可转让。我有一个ResultSet resultSet = stmt.executeQuery(query);
while(resultSet.next()) {
System.out.println(resultSet.getString(1) + "," + resultSet.getString(2));
}
,它返回像
Column1 Column2
100 One
100 Two
100 Three
100 Four
100 Five
100 Six
101 Seven
101 Eight
103 Nine
103 Ten
103 Eleven
结果:
Column1 Column2
100 One
Two
Three
Four
Five
Six
101 Seven
Eight
103 Nine
Ten
Eleven
但是我想要这种格式的对象中的数据:
{{1}}
这意味着我想要一个列表/哈希映射,其中第1列数据应该是键,对应的第2列数据应该在某个数组/集合对象中作为值,这样我就可以通过提供特定的键来访问所有相应的值
答案 0 :(得分:0)
为简单起见,您可以使用hashmap。
HashMap<String, ArrayList<String>> hashmap = new HashMap<String, ArrayList<String>>();
以这种方式,您的第一列成为键,第二列中的值变为ArrayList,对应于第一列的实现请通过以下url
HashMap(key: String, value: ArrayList) returns an Object instead of ArrayList?
答案 1 :(得分:0)
如果我理解你正在尝试做什么,情况就是这样:
Map<String, List<String>> mappedObjects = new HashMap<String, List<String>>();
while (resultSet.next()) {
List<String> values = new ArrayList<>();
if (mappedObjects.get(resultSet.getString(1)) != null) {
values = (List<String>) mappedObjects.get(resultSet.getString(1));
}
if (values.size() > 0) {
values.add(resultSet.getString(2));
} else {
values.add(resultSet.getString(2));
}
mappedObjects.put(resultSet.getString(1), values);
}