java - 在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,其中“主题”是键,“课程”是值。
推荐阅读
- matlab - 如何在 matlab 或其他分析软件中打开 IR 温度的 txt 文件作为图像
- javascript - 我的 PHP/PDO 查询在应该返回 9 时只返回 7 条记录
- php - 将图像和描述加载到叠加层(HTML/CSS/PHP)
- powershell - 如何让 PS 脚本访问需要管理员访问权限的文件夹
- php - HasOne 创建不更新外部字段
- lua - 我需要帮助去混淆 gLua 代码,但找不到任何解决方案
- data-management - *何时*您从 Xamarin Forms 列表视图中的编辑控件保存数据?
- python-3.x - 无法打开图像
- python - 如何在一个元素中拾取某个平面来镜像它?
- c++ - 链接和编译文件之间的 C++ 阶段