【发布时间】:2011-09-24 01:21:56
【问题描述】:
我正在尝试找到我的方法的简化版本,我想知道您是否有更好的意见。
基本上我有一个 HashMap 将键值存储为 String-String[]
我想要一个方法来确定新插入的 String[]-value 是否包含已存在于已存储 String[]-value 中的 String。
我写的“并且显然工作正常”是以下方法:
static Map<String,String[]> myMap=new HashMap<String,String[]>();
public static boolean kijkContains(String[] syn){
for(String s:myMap.keySet()){
String[]temp=myMap.get(s);
for(int i=0; i<temp.length; i++){
for(int k=0; k<syn.length; k++){
if(temp[i].equals(syn[k])){
return true;
}
}
}
}
return false;
}
我的疑惑是循环的数量,这显然是一种高内存消耗的方法,我想知道你是否能想到更好的版本。
我尝试过使用 Map 的 containsValue() 方法,但由于该方法将 String[] 视为值而不是读取数组,因此我不能真正将其用作比较器。
【问题讨论】:
标签: java arrays string loops hashmap