下文主要介绍java中利用JDK1.5的新特性For-Each循环,来遍历Map集合以解决一些问题。
map集合:就是采用了 Key-value键值对映射的方式进行存储 key在Map里面是唯一的但是value可以重复,一个key对应一个value。key是无序、唯一的,而value是无序不唯一的
一,利用keySet集合
根据Map集合的特性我们可以知道:map中key是唯一的。因此我们可以利用map中的keySet进行遍历。详细代码如下:
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<>();
map.put(1,"one");
map.put(2,"two");
map.put(3,"three");
//方式一:利用keySet()
Set<Integer> set = map.keySet();
for (Integer key:map.keySet()
) {
System.out.println(map.get(key));
}
}
根据代码,可以看出map.keySet();
返回的是由map集合中的key构成的Set集合。
二,利用values进行遍历
这种方式可以在不使用key值的情况下来遍历value值。具体代码如下:
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(1,"one");
map.put(2,"two");
map.put(3,"three");
//方式二:
for (String value:map.values()
) {
System.out.println(value);
}
}
三,通利用Map.entrySet遍历key和value(最常用最重要的方法)
利用Map接口自带的内部接口 Entry<K , V>
进行过度方式的遍历。 Map.entrySet方法获得所有键值对对象的集合。具体代码如下:
方法名称 | 说明 |
---|---|
Set<Map.Entry<K,V>> entrySet() | 获取所有键值对对象的集合 |
K getKey() | 获得键 |
V getValue() | 获得值 |
public static void main(String[] args) {
HashMap<Integer, String> map = new HashMap<>();
map.put(1,"one");
map.put(2,"two");
map.put(3,"three");
//方式三:
for (Map.Entry<Integer,String> ma:map.entrySet()
) {
System.out.println(ma.getKey()+"===="+ma.getValue());
}
}