首先创建一个Map集合,里面放三个键值对
HashMap<Integer,String> map = new HashMap<Integer,String>();
for(int i=1;i<=3;i++){
map.put(i,"哈哈"+i);
}
1.第一种遍历方式:keySet()方法,得到一个key的set集合,然后遍历set集合,再利用get(key)方法得到对应key的value值(效率低下)
System.out.println("Map的第一种遍历:keySet()--性能差(建议不使用此方法) ");
//这种遍历方式:首先是将map中得key作为一个Set集合,
// 然后根据map的get(key)方法得到value,性能差(建议不使用此方法)
for (int key:map.keySet()) {
System.out.println("键: "+key+" 值: "+map.get(key));
}
System.out.println("====================================================");
2.第二种遍历方式:利用Iterator遍历器遍历(用的比较普遍)
System.out.println("Map的第二种遍历:Iterator遍历器遍历");
Iterator iterators = map.entrySet().iterator();
while(iterators.hasNext()){
Map.Entry<Integer,String> entry=(Map.Entry<Integer,String>)iterators.next();
System.out.println("键: "+entry.getKey()+" 值: "+entry.getValue());
}
System.out.println("====================================================");
3.第三种遍历方式:用map中得entrySet()方法,得到一个entry<>(),然后用entry的getKey()和getValue()方法分别得到Key和Value的值(效率比较高!entry在英文中的意思就是记录 的意思)
System.out.println("Map的第三种遍历:通过Map.entrySet遍历key和value--推荐,尤其是容量大时");
for(Map.Entry<Integer,String> entry: map.entrySet())
{
System.out.println("键: "+ entry.getKey()+ " 值: "+entry.getValue());
}
System.out.println("====================================================");
4.第四种遍历方式:直接用map的map.values()方法,得到一个values的集合,然后直接遍历,只能得到value的值,没办法得到key的值
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for(String value:map.values())
{
System.out.println("值: "+value);
}