1 public class testMap { 2 public static void main(String[] args) { 3 4 Map<String, String> map=new HashMap<String,String>(); 5 map.put("a", "aaaa"); 6 map.put("b", "bbbb"); 7 map.put("c", "cccc"); 8 map.put("d", "dddd"); 9 map.put("e", "eeee"); 10 11 // iterator 遍历 12 Set set=map.keySet(); 13 for(Iterator iter=set.iterator();iter.hasNext();){ 14 String key=(String) iter.next(); 15 String value=(String) map.get(key); 16 System.out.println(key+"===="+value); 17 } 18 19 20 // 增强for循环遍历 21 // 查找键(key) 22 for(Object key:map.keySet()){ 23 System.out.println("集合的键是"+"#########"+key); 24 } 25 // 查找值(values) 26 for(Object value:map.values()){ 27 System.out.println("集合的值是"+"#########"+value); 28 } 29 // 同时输出键和值(该方法不是最优选择,一般不推荐使用) 30 for(Object key:map.keySet()){ 31 System.out.println("集合的键值分别是"+key+"+"+map.get(key)); 32 } 33 // entryset输出键和值(推荐) 34 for(Map.Entry<String, String> keyvalEntry:map.entrySet()){ 35 System.out.println("entry输出键值"+keyvalEntry.getKey()+":"+keyvalEntry.getValue()); 36 }
输出结果:a====aaaab====bbbbc====ccccd====dddde====eeee集合的键是#########a集合的键是#########b集合的键是#########c集合的键是#########d集合的键是#########e集合的值是#########aaaa集合的值是#########bbbb集合的值是#########cccc集合的值是#########dddd集合的值是#########eeee集合的键值分别是a+aaaa集合的键值分别是b+bbbb集合的键值分别是c+cccc集合的键值分别是d+dddd集合的键值分别是e+eeeeentry输出键值a:aaaaentry输出键值b:bbbbentry输出键值c:ccccentry输出键值d:ddddentry输出键值e:eeee
总结
如果只是获取key,或者value,推荐使用keySet或者values方式
如果同时需要key和value推荐使用entrySet
如果需要在遍历过程中删除元素推荐使用Iterator
如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中
来源:https://www.cnblogs.com/wushuo-1992/p/8476914.html