Map 的使用,在java中还是很多的,主要是方便。但是遍历map,诸位都会吗?相信list的遍历,大家都经常在用,map的遍历,还真不多见,至少小编用的就少。但是不管这个,今天和小编一起看下怎么遍历map。Let go!
Map的存储为key-value格式,key-value 即 entry。key 是无序不可重复的,这和Set的结构特性一样。value 是可重复的,和Collection结构相似。而entry,是无序不可重复的,又是和Set结构相似。那么遍历的灵感的就来了。
1,遍历map 的key。
public class HashMapTest {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");
map.put("key4", "value4");
//1,遍历key
Set set = map.keySet();//map中key生成的集合是Set类型
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
输出:
D:\jdk\jdk1.8.0_171\bin\java.exe
key1
key2
key3
key4
2,遍历map 的value。
Collection values = map.values();//map中的value生产的集合是Collectione类型
Iterator iterator = values.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
输出:
D:\jdk\jdk1.8.0_171\bin\java.exe
value1
value2
value3
value4
3,遍历map 的entry 即 遍历每一个key-value。
Set set = map.entrySet();//map中entry生成的集合是set类型
Iterator iterator = set.iterator();
while (iterator.hasNext()){
Object next = iterator.next();
//此时next即为key-value。下面强制转换为entry,方便使用
Map.Entry entry = (Map.Entry) next;
System.out.println(entry.getKey() + ": " + entry.getValue());
}
输出:
D:\jdk\jdk1.8.0_171\bin\java.exe
key1: value1
key2: value2
key3: value3
key4: value4