假如有一个Map<String key,int value> pair对象,怎么获取它的键对值呢?
一. 同时获取key:value的方法
for(Map.Entry<String, Integer> entry: pair.entrySet()) {
//Map.Entry表示映射关系。entrySet():迭代后可以通过entry.getKey(),entry.getValue()分别获取key和value的值。返回的是Entry接口 。
System.out.print(entry.getKey() + ":" + entry.getValue() + "\t");
}
二. 获取key的方法: 将Map中所有的键(key)存入到set集合中,set具备迭代器,所有可以迭代方式取出所有的键
1. Set<String> keys=pair.keySet(); //获取pair的key集合
System.out.print(keys); // 一次输出所有key值串
2. for(String word: pair.keySet()) {
System.out.print(word+ "\t");
} //循环输出每个key的值
三. 获取value的方法:
1. for(Integer word: pair.values()) { //用Map.values()方法 获得每个value的值
System.out.print(word+ "\t");
}
2. for(String word: pair.keySet()) {
System.out.print(pair.get(word)); // 使用keySet()方法得到key的值后,用Map.get(key)的方法循环获得每个key对应的value的值
}
题外补充:
提到了Map.get(key)方法后,我又想到了Map的containsKey(key)方法,那么它们有什么不同呢?见下篇我们再详细讨论。
containsKey(key)方法是判断pair里面有没有该键对象,有就返回true,没有就返回false。而get(key)是返回键key所对应的value值。