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

我正在努力在 Java 中创建一个简单的算法,该算法将从数据库表中提取单词及其各自的文件并将其保存在一个集合或数组中。


例如,这就是我的表的样子:


path        word

file1        w1


file1        w2



file1        w3


.........


file2        w2


file2        w5


.........

这样的例子不胜枚举。


在我的程序中,我想从表中提取这些数据,以便将其存储在这样的集合中:


w1={file1}

w2={file1, file2}

w3={file1}

w5={file2}

...... and etc

当然,表中肯定会有更多数据,但这只是我想要完成的总体思路。


我要做的第一步是建立到我的数据库的 JDBC 连接并从我的表中运行一个 select 语句。但是,我不知道如何以一种像我上面描述的方式存储它们的方式提取它们。


我应该使用数组或 hashSet 还是其他东西?


我会很感激任何建议。


繁星淼淼
浏览 151回答 2
2回答

慕雪6442864

您可以使用HashMap<String,TreeSet<String>> map = new HashMap<>();那么你的代码将是:ResultSet rs = stmt.executeQuery("SELECT PATH, WORD FROM TABLE_A");while(rs.next()) {&nbsp; &nbsp; if (map.containsKey(rs.getString("WORD"))) { // If the word is already in your hash map&nbsp; &nbsp; &nbsp; &nbsp; TreeSet<String> path = map.get(rs.getString("WORD")); //get the set of files where this word exist&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; path.add(rs.getString("PATH")); // add the new path to the set&nbsp; &nbsp; &nbsp; &nbsp; map.put(rs.getString("WORD"), path); // update the map&nbsp; &nbsp; } else { // else if the word is new&nbsp; &nbsp; &nbsp; &nbsp; TreeSet<String> path = new TreeSet<String>(); // create a new set&nbsp; &nbsp; &nbsp; &nbsp; path.add(rs.getString("PATH")); // add the path to the set&nbsp; &nbsp; &nbsp; &nbsp; map.put(rs.getString("WORD"), path); // add the new data to the map&nbsp; &nbsp; }}

至尊宝的传说

在这种情况下, 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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java