它 没有迭代器,但是可以实现迭代的.
第一种方式:
class MapDemo_2 {
public static void mian(string [] args) {
Map <String,Integer> m = new HashMap<> ();
m.put("张三",23);
m.put("李四",24);
m.put("王五",25);
m.put("赵六",26);
set<String> s = m.keySet(); //获取所有的键,返回一个集合
Iterator<String> in = s.Iterator(); //set集合中含有迭代器,获取迭代,
while(in.hashNext()) {
String key = in.next(); //获取键
Integer value = m.get(key); //通过键获取值
System.out.println(key+"="value);
}
增强for循环: for(String key : m.keySet()) { //keySet是获取键的集合
Sytem.out.println(key+"="+m.get(key));
}
}
}
第二种方式:
entrySet();获取键值对。它的返回值是set<Map.Entry<K,V>>这是一个集合。Map是一个接口,Entry是一个子接口。
Map.Entry<K,V>有两个方法 getKey();获取键
getValue();获取值
class MapDemo_3 {
public static void mian (string [] args) {
Map <String,Integer> m = new HashMap<> ();
m.put("张三",23);
m.put("李四",24);
m.put("王五",25);
m.put("赵六",26);
set<Map.Entry<String,Integer>> entry = m.entrySet();
Iterator<May.Entry<String,Integer>> in = entry.Iterator();
while(in.hashNext()) {
May.Entry<String,Integer> en = in.next();
string key = en.getKey();
Integer it = en.getValue();
System.out.println(key+"="+value);
}
增强for循环: for(Map.Entry<String,Integer> en :m.entrySet()) {
System.out.println(en.getkey()+"="+en.getValue());
}
}
} |