gpt4 book ai didi

java - 如何根据类的值将类对象添加到hashMap?

转载 作者:行者123 更新时间:2023-12-02 11:16:25 26 4
gpt4 key购买 nike

我正在从数据库中检索一些值,这些值需要添加到列表中,然后根据其值添加到具有特定键的 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"

我需要将 row1 和 row 3 放入一个列表中,并将 row2 和 row 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) 对于类型 Object 来说是未定义的。

最佳答案

您需要创建列表 map 。当您读取记录时,如果存在键(这里是类别),则将当前行添加到列表中

 Map map = new HashMap()
for( Row row : resultset ) {
if(!map.containsKey(row.category)){
map.put(row.category, new ArrayList());
}
map.get(row.category).add(row.name);
}

更新

问题是您需要在此处指定泛型类型

 Map<String, List<Rows>> map = new HashMap<String, List<Rows>>()
while( rs.next() ) {
Rows row = new Rows();
/*
* code to initialize the values of row from the record
*/
String category = rs.getString("Cat");
if(!map.containsKey(category)){
map.put(category, new ArrayList<Rows>());
}
map.get(category).add(row);
}

关于java - 如何根据类的值将类对象添加到hashMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12650122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com