gpt4 book ai didi

java - 从 HashMap 中返回特定值

转载 作者:行者123 更新时间:2023-12-01 11:41:22 25 4
gpt4 key购买 nike

我有一个术语字典dictonery/AB.txt和一个大文本文件dictonery/annotate.txt

我想知道 AB.txt 中的哪些字典术语位于 annotate.txt 文件中。

这是迄今为止我的代码:

 String fileString = new String(Files.readAllBytes(Paths.get("dictonery/AB.txt")), StandardCharsets.UTF_8);

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

String entireFileText = new Scanner(new File("dictonery/annotate.txt")).useDelimiter("\\A").next();

map.put(fileString, "m");

for (String key : map.keySet()) {
if(fileString.contains(key)) {
System.out.print(key);
}
}

此时整个字典已返回。如何使其成为 annotator.txt 文件中的特定术语?

最佳答案

有一些事情可能会有所帮助:

  • 由于您不需要 Map 中的值,因此我将使用 Set (具体来说 HashSet )。
  • 使用Scanner.next()读取单个单词而不是一次读取整个文件
  • 您对 fileString.contains(key) 的检查效率相当低,并且对于部分匹配,它还会返回 true (如果您的字典中有单词“do”,它也会匹配“dog”)。它还会多次打印匹配的单词。

就我个人而言,我会创建两个集合,以相同的方式读取这两个文件,然后 calculate their intersection 。如果您想要排序的输出(可能不是必需的,但通常很好),您可以创建迭代 TreeSetSet 。 .

关于java - 从 HashMap 中返回特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29498207/

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