62,628
社区成员
发帖
与我相关
我的任务
分享
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapContainValue {
private HashMap<String, String> data = new HashMap<String, String>();
//模拟着向data中加入数据
public void addValue() {
String key = null;
String value = null;
//所有的值都相同,为value
for(int i=0; i<=10; i++) {
key = new String("key" + i);
value = new String("value");
data.put(key, value);
}
}
//根据指定的value找出与之对应的key,并作为一个数组返回
public String[] getKey(String value) {
//如果没有包含指定的值,则返回null
if(!data.containsValue(value)) {
return null;
}
Set<String> key = data.keySet();
Iterator<String> iterator = key.iterator();
StringBuffer result = new StringBuffer();
//找出与value对应的key,保存在result中
while(iterator.hasNext()) {
String str = iterator.next();
if(data.get(str).equals(value)) {
result.append(str + ":");
}
}
//从result中取出key
String[] keys = result.substring(0, result.length()-1).split(":");
return keys;
}
public void print(String value, String[] keys) {
System.out.println("下面是与" + value + "对应的key值:");
for(String key : keys) {
System.out.println(key);
}
}
public static void main(String[] args) {
MapContainValue mcv = new MapContainValue();
mcv.addValue();
String value = new String("value");
String[] keys = mcv.getKey(value);
mcv.print(value, keys);
}
}