当前位置: 首页 > 知识库问答 >
问题:

在哈希表中找到的值的返回键

阎麒
2023-03-14

我知道如何在哈希表中找到相应键的值,但我如何找到哪个键附加到特定值?我写了一个函数,它循环遍历String并查找关键字。它做的很快,但我需要返回该值的关键字找到。这是我目前为止的方法

public void findKeywords(POITextExtractor te, ArrayList<Hashtable<Integer,String>> listOfHashtables, ArrayList<Integer> KeywordsFound) {
    String document = te.getText().toString();
    String[] words = document.split("\\s+");
    int wordsNo = 0;
    int wordsMatched = 0;
    System.out.println("listOfHashtables = " + listOfHashtables);
    for(String word : words) {
        wordsNo++;
        for(Hashtable<Integer, String> hashtable : listOfHashtables) {
            //System.out.println(hashtable + " found in the document:");
            if(hashtable.containsValue(word)) {

                //<RETURN KEY OF THAT VALUE>

                wordsMatched++;
                System.out.println(word);
            }
        }
    }
    System.out.println("Number of words in document = " + wordsNo);
    System.out.println("Number of words matched: " + wordsMatched);
}

共有1个答案

向实
2023-03-14

无论如何,必须遍历哈希表中的所有条目-所以只需更改代码,以便执行此操作:

for (Map.Entry<Integer, String> entry : hashtable) {
    if (word.equals(entry.getValue()) {
        // Use entry.getKey() here
    }
}

从这个问题的描述中,我不清楚你的哈希表打算表示什么——但是从整数到字符串的映射至少是不寻常的。你确定你不想反过来吗?

 类似资料:
  • 输入是一个哈希映射,比如 我想写一个方法,返回类型A的列表,其中有键,值属性与字符串类型,和键值从hashmap。 如何让它成为现实?

  • 问题内容: 当大小超过maxthreshold值时,如何在哈希表或哈希表中进行重新哈希处理? 是否所有对都已复制到新的存储桶阵列中? 编辑: 重新哈希后,同一存储桶(位于链接列表中)中的元素会发生什么情况?我的意思是说,他们在重新哈希处理后会留在同一个桶中吗? 问题答案: 问题中的最大阈值称为负载系数。 建议负载系数约为0.75。负载因子定义为(m / n),其中n是哈希表的总大小,m是在需要增加

  • 想改进这个问题吗 通过编辑这篇文章,更新问题,使其只关注一个问题。 我有

  • 问题内容: 我目前正在尝试制作一个将动词与西班牙语共轭的程序。我创建了一个哈希表,其中包含一个键和对象Ve​​rb的实例化。键是具有动词不定式形式的字符串(例如“ hablar”)。这是到目前为止我对哈希映射的代码: HashMap中每个动词的键都基于动词的不定式形式。例如,字符串“ hablar”是西班牙语动词的键。Verb类具有一个名为getInfinitive()的方法,该方法返回一个字符串

  • 例如,如果我有一个哈希表 字符串名;整数; 给定一个特定的键,如何只返回值的名称或数字? 目前,我可以在哈希表中找到密钥并返回它的值,但它返回的是“Value@2c6a3f77”我猜测@...是一个与程序如何存储数据相关的索引。

  • 我想在命令行上这样做,所以像这样的事情会很好: 上面的方法当然不适合散列。所以最后我需要打电话 以自动化的方式。