查看Map自带API
map遍历方法:
public static void main(String[] args) { Map<Integer,String> map = new HashMap<Integer,String>(); map.put(10,"first"); map.put(20,"second"); map.put(30,"third"); /** * 通过map.keySet遍历key,通过map.get(key)取value * * 特点:适用于仅获取key的情况,同时也可通过key获取value, * 不过不推荐使用该方法获取value(原因:通过key值去计算对应的hash,然后再通过hash获取对应的结果值,会导致效率较低) */ for (Integer key:map.keySet() ) { System.out.println("key is " + key +" and value is " + map.get(key)); } /** * 通过map.entrySet()遍历该map,通过entry.getKey()获取key entry.getValue()获取value * * 特点:同时需要key和value时推荐使用 * hashMap内部的存储结构就是基于Entry的数组,在用这种方式进行遍历时,只需要遍历一次即可 */ for (Map.Entry<Integer,String> entry:map.entrySet() ) { System.out.println("key is " + entry.getKey() + " and value is " + entry.getValue()); } /** * 通过map.entrySet()使用iterator遍历,it.getKey()获取key it.getValue()获取value * *特点:效率同map.entrySet(),增加删除元素的功能,可以使用Iterator的remove方法删除元素 */ Iterator<Map.Entry<Integer,String>> iterator = map.entrySet().iterator(); while(iterator.hasNext()){ Map.Entry<Integer,String> it = iterator.next(); //删除元素 if("second".equals(it.getValue())){ iterator.remove(); } System.out.println("key is " + it.getKey() + " and value is "+ it.getValue()); } /** * 通过map.values()获取所有的value遍历,适用于只获取value的情景 * * 特点:适用于仅取value的情况 */ for (String value:map.values() ) { System.out.println("value is "+value); } /** * java8 Lambda表达式遍历 */ map.forEach((key, value) -> { System.out.println("Lambda-> key is " + key + "and value is" + value); }); }