HashMap我们经常用到,所以还是要知道下HashMap是如何取值的。
HashMap的4种遍历方式:
package net.stxy.one.utils; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * Created by ASUS on 2018/5/26 * * @Authod Grey Wolf */ public class Test { public static void main(String[] args) { Map<String,String>map=new HashMap <String, String>(8); int i; for (i=0;i<3;i++){ map.put("map"+i,"map"+i); } Test t=new Test(); t.sysmap1(map); t.sysmap2(map); t.sysmap3(map); t.sysmap4(map); } private void sysmap4(Map<String, String> map) { System.out.println("第四种:"); //获取map中的所有值,遍历后可以取得每一个值,但是得不到key for (String value:map.values()){ System.out.println("value:"+value); } } private void sysmap3(Map<String, String> map) { System.out.println("第三种:"); //最常用的方式,获取map的所有key,循环每个key,获取key对应的值 for (String key:map.keySet()){ System.out.println("key:"+key+"------value:"+map.get(key)); } } private void sysmap2(Map<String, String> map) { System.out.println("第二种:"); //将map转换成set集合,使用增强for直接遍历集合中的数据 for (Map.Entry<String,String>entry:map.entrySet()){ System.out.println("key:"+entry.getKey()+"------value:"+entry.getValue()); } } private void sysmap1(Map<String, String> map) { System.out.println("第一种:"); //将map转换成set集合,使用set的迭代器,可以在不知道key的情况下遍历Map对象 Iterator iterator=map.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<String,String>entry= (Map.Entry<String, String>) iterator.next(); System.out.println("key:"+entry.getKey()+"------value:"+entry.getValue()); } } }
结果:
第一种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第二种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第三种:
key:map2------value:map2
key:map1------value:map1
key:map0------value:map0
第四种:
value:map2
value:map1
value:map0
Process finished with exit code 0