我想查询sql语句并创建一个hashmap来存储2个值。一个是 id,另一个是名称。然后我想将它添加到 ArrayList 中。我的代码有问题,与特定类型不匹配。我不明白这有什么问题。你能解释一下我在这里做错了什么吗?据我所知,您无法添加 <String, String>
类型的 HashMap 到 ArrayList 但我怎样才能以其他方式实现它?
ArrayList<String> KEYWORDS = new ArrayList<String>();
String sql = "SELECT da_tag_name, da_tag_id FROM da_tags WHERE da_tag_type_id = 8";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
HashMap<String, String> row = new HashMap<String, String>();
row.put(resultSet.getString(1).toString(), resultSet.getString(2).toString());
KEYWORDS.add(row);
}
最佳答案
这段代码有一些问题。
- 列表的通用类型与您尝试添加到其中的内容不匹配
- 您应该养成针对接口(interface)而不是实现进行编程的习惯
- 变量应该采用驼峰命名法(常量全部大写)
类似这样的:
// Note: as of Java 7 you can simplify generics using the diamond operator
List<Map<String, String>> keywords= new ArrayList<>();
String sql = "SELECT da_tag_name, da_tag_id FROM da_tags WHERE da_tag_type_id = 8";
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet resultSet = stmt.executeQuery();
while (resultSet.next()) {
Map<String, String> row = new HashMap<>();
row.put(resultSet.getString(1).toString(), resultSet.getString(2).toString());
keywords.add(row);
}
最后,我会考虑设计并质疑仅具有一个条目的 HashMap 的使用。
关于java - 使用 resultSet 值的 HashMap 到 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48503696/