【发布时间】:2012-09-29 05:11:49
【问题描述】:
我正在从数据库中检索一些值,这些值需要添加到列表中,然后根据它们的值添加到具有特定键的 MAP,例如,
row 1 name = "A" category = "1"
row 2 name = "B" category = "2"
row 3 name = "C" category = "1"
row 4 name = "D" category = "3"
我需要将第 1 行和第 3 行放在一个列表中,并将第 2 行和第 4 行分别放在一个单独的列表中,然后 将这三个列表放入 MAP 中,并使用类别名称 (1,2,3) 作为 MAP 的键。
MAP
1 LIST1 (values of 2 rows)
2 LIST2 (values of 1 row)
3 LIST3 (values of 1 row)
我不确定如何将它们添加到列表和 MAP。 我的限制是,并非每次检索值时都会检索到相同的行,因此每次我可能需要不同数量的列表来保留已检索到的每个类别的值。
我的代码如下,
ResultSet rs = st.executeQuery(SelectRows);
Map map = new HashMap();
if(rs.next())
{
item.setRowID(rs.getString("ID"));
item.setName(rs.getString("Name"));
item.setValue(rs.getString("Value"));
item.setCat(rs.getString("Cat"));
if(!map.containsKey(rs.getString("Cat"))){
map.put(rs.getString("CatID"), new ArrayList());
}
map.get(rs.getString("CatID")).add(row);
}
最后一行遇到此错误 > "" 方法 add(Rows) 未定义对象类型。 即使我将对象添加到列表中,我也会遇到同样的错误,方法 add(List) 未定义对象类型。
【问题讨论】:
-
@HussainAl-Mutawa,我尝试将它们添加到 MAP,但因为每次我得到不同的类别时都不确定如何创建列表并设置 MAP 的键。
-
我的意思是,你能显示你的代码吗?您在尝试解决问题时可能做错了什么。
-
@HussainAl-Mutawa,感谢您的回答,我已经编辑了问题。
-
查看我更新的答案,您需要投射从地图中获得的项目,或者提前定义泛型类型。