初始化一个Map,在Map里存储数据
Map map = new HashMap();
map.put("1","美女");
map.put("2","帅哥");
map.put("说唱","rapper");
map.put("流行","歌手");
map.put(null,"小刘");
map.put("小张",null);
map.put("小李","小红");
=================================================
第一种方式 增强 for 循环(取Map的key)
先取出map所有的key,通过key取出对应的value
Set keyset = map.keySet();
for (Object key : keyset) {
System.out.println(key + "-" + map.get(key));
}
输出结果
================================================
第二种方式 迭代器遍历 (取Map的key)
先取出map所有的key,通过key取出对应的value
取keyset的iterator
方法hasNext()判断iterator的下一个有没有存在数据
方法next()取iterator指向的下一个数据
Set keyset = map.keySet();
Iterator iterator = keyset.iterator();
while(iterator.hasNext()){
Object key = iterator.next();
System.out.println(key + "-" + map.get(key));
}
输出结果
=================================================
第三种方式 增强 for 循环(取Map的value)
先取出map所有的values
Collection values = map.values();
for(Object value : values){
System.out.println(value);
}
输出结果
=================================================
第四种方式 迭代器遍历 (取Map的value)
先取出map所有的values
Collection values = map.values();
Iterator iterator = values.iterator();
while(iterator.hasNext()){
Object value = iterator.next();
System.out.println(value);
}
输出结果
=================================================
第五种方式 增强 for 循环(取Map的entry)
通过EntrySet来获取k-v
Set entrySet = map.entrySet();
for(Object entry : entrySet){
Map.Entry m = (Map.Entry) entry;
System.out.println(m.getKey() + "-" + m.getValue());
}
输出结果
=================================================
第六种方式 迭代器遍历 (取Map的entry)
刚取得entry时,对象类型为Object
需要向下转型,将对象类型转为 Map.Entry
Set entrySet = map.entrySet();
Iterator iterator = entrySet.iterator();
while(iterator.hasNext()){
Object entry = iterator.next();
Map.Entry m= (Map.Entry) entry;
System.out.println(m.getKey() + "-" + m.getValue());
}