为了账号安全,请及时绑定邮箱和手机立即绑定

java-如何将单词和文件提取到一个集合中?

java-如何将单词和文件提取到一个集合中?

繁星淼淼 2022-06-30 11:05:14
我正在努力在 Java 中创建一个简单的算法,该算法将从数据库表中提取单词及其各自的文件并将其保存在一个集合或数组中。例如,这就是我的表的样子:path        wordfile1        w1file1        w2file1        w3.........file2        w2file2        w5.........这样的例子不胜枚举。在我的程序中,我想从表中提取这些数据,以便将其存储在这样的集合中:w1={file1}w2={file1, file2}w3={file1}w5={file2}...... and etc当然,表中肯定会有更多数据,但这只是我想要完成的总体思路。我要做的第一步是建立到我的数据库的 JDBC 连接并从我的表中运行一个 select 语句。但是,我不知道如何以一种像我上面描述的方式存储它们的方式提取它们。我应该使用数组或 hashSet 还是其他东西?我会很感激任何建议。
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

您可以使用HashMap<String,TreeSet<String>> map = new HashMap<>();


那么你的代码将是:


ResultSet rs = stmt.executeQuery("SELECT PATH, WORD FROM TABLE_A");


while(rs.next()) {

    if (map.containsKey(rs.getString("WORD"))) { // If the word is already in your hash map

        TreeSet<String> path = map.get(rs.getString("WORD")); //get the set of files where this word exist 

        path.add(rs.getString("PATH")); // add the new path to the set

        map.put(rs.getString("WORD"), path); // update the map

    } else { // else if the word is new

        TreeSet<String> path = new TreeSet<String>(); // create a new set

        path.add(rs.getString("PATH")); // add the path to the set

        map.put(rs.getString("WORD"), path); // add the new data to the map

    }

}


查看完整回答
反对 回复 2022-06-30
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

在这种情况下, TreeSet比HashMap更好,因为它不接受重复值,从而保证了更高的完整性。


无论如何,HashMap更适合您的需求,因为Path可以是 key,word是 value。


我准备了一个示例,说明如何检索路径和单词,然后将它们分别放入HashMap的键和值中:


Map<String, String> fileParameters = new HashMap<>();

ResultSet rs = stmt.executeQuery("SELECT path, word FROM files");

while(rs.next()) {

String path = rs.getString("path");

String name = rs.getString("word");

fileParameters.put(path, name);


查看完整回答
反对 回复 2022-06-30
  • 2 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信