java - 在Hashmap中搜索字符串数组的有效方法

标签 java arrays hashmap

我有以下带有字符串数组的 HashMap :

public static HashMap<String, String[]> map = new HashMap<String, String[]>();
map.put("calculus",new String[] {"math","logic"});
map.put("chemisty",new String[] {"ions","electrons"});
map.put("biology",new String[] {"life","bacteria"});

我有一个字符串,我想在 HashMap 的字符串数组中搜索它。我的代码是:

public String findFn(String myString) {

    for (Map.Entry<String, String[]> entry : map.entrySet()) {

        String key = entry.getKey();

        for(String s : entry.getValue()) {
            if(s.contains(myString)) {
                return key;
            }
        }
    }
    return null;    
}

这将有效地迭代整个 HashMap 值,直到找到匹配项。有没有更好的方法来做到这一点?

最佳答案

根据您当前的数据结构,这是您能做的最好的事情。如果您需要经常这样做,您应该构建另一个具有相反关系的 Hashmap,其中“主题”是键,“类(class)”是值。

关于java - 在Hashmap中搜索字符串数组的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854945/

相关文章:

java - 如何使用两种方法打印出星号?

java - 我如何检查空指针异常

java - 如何为 Map 实现创建自定义迭代器?

java - HashMultimap 无法解析为类型?

java - 如何将 JTextField 动态添加到 JScrollPane 中?

java - 如何使用 java stream API 生成 IntStream

当变量明显存在时,Javassist 没有这样的字段

java - 返回较高值中位数的中值方法

javascript - Array.prototype.map不能用于Promise吗?

c++ - 用char初始化多维数组?