快捷搜索:  汽车  科技

java 间隔遍历map(Java中Map的4种遍历方式)

java 间隔遍历map(Java中Map的4种遍历方式)

java 间隔遍历map(Java中Map的4种遍历方式)(1)


// 测试数据 Map<String Object> map = new HashMap<String Object>(); map.put("1" "壹"); map.put("2" "贰"); 第一种方式:这是平常用的最多也最可取的一种遍历方式

for (Map.Entry<String Object> entry : map.entrySet()) { System.out.println("key=" entry.getKey() " value=" entry.getValue()); } 第二种方式:如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet,该方法比entrySet遍历在性能上稍好(快了10%),而且代码更加干净。

// 遍历key for (String key : map.keySet()) { System.out.println("key=" key); } // 遍历value for (Object value : map.values()) { System.out.println("value=" value); } 第三种方式:使用Iterator进行遍历Map

Iterator<Map.Entry<String Object>> entries = map.entrySet().iterator(); while (entries.hasNext()) { Entry<String Object> entry = entries.next(); System.out.println("key=" entry.getKey() " value=" entry.getValue()); }

java 间隔遍历map(Java中Map的4种遍历方式)(2)

注意:在遍历过程中remove操作,只能用iterator遍历方式,其他遍历会抛异常,(顺便补充,list通过Iterator方式可正确遍历完成remove操作,直接调用list的remove方法就会抛异常)

Iterator<Map.Entry<String Object>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String Object> entry = it.next(); String key = entry.getKey(); if (key.equals("1")) { System.out.println("remove的key= " key); it.remove(); System.out.println("key=" key "已移除"); } } for (String key : map.keySet()) { System.out.println("key=" key " value=" map.get(key)); }

list的遍历中remove

//会抛ConcurrentModificationException异常 for(String str : list){ list.remove(str); } //正确遍历移除方式 Iterator<String> it = list.iterator(); while(it.hasNext()){ it.next(); it.remove(); } 第四种遍历方式:通过键找值遍历,缺点,效率低,本身从键取值是耗时的操作

for (String key : map.keySet()) { Object value = map.get(key); System.out.println("key=" key " value=" value); }

每天进步一点点,你侬我侬不如码农,欢迎评论转发,欢迎关注,定时更新web开发经验,一起进步,一起提高!

猜您喜欢: