У меня есть следующий 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"});
У меня есть строка, которую я хочу найти в массивах String в 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, пока не будет найдено совпадение. Есть ли лучший способ сделать это?