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

标签 java object hashmap

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

相关文章:

java - 拆分字符串行列表并将单词添加到新列表中

java - 对象数组只包含最后一个

java - 修改这个 8 谜题代码以打印中间状态以得出解决方案

rust - 为什么给定 HashMap 中的值是可变的,而我不认为我已经明确声明了它们?

java - 使用 testNG Maven 从 info.cukes 更改为 io.cucumber。抛出运行时错误

java - 在 spring-boot 启动时调用服务的最佳方式是什么?

java - 故障安全类加载的最佳实践

java - 将新对象添加到数组时,对象被覆盖

php - PHP 是否具有对象的简写语法?

java - 从 HashMap 返回一个元素