正确遍历删除Map中的元素

来源:互联网 发布:韩国大尺度电影知乎 编辑:程序博客网 时间:2024/04/19 20:22

在遍历Map过程中,不能用map.remove(key)来删除元素, 会引发并发修改异常,可以通过迭代器的remove();从迭代器指向的 collection 中移除当前迭代元素,来达到删除访问中的元素的目的。

package com.cx.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class Main {    public static void main(String[] args) {        fun();    }    private static void fun() {        Map<Integer, String> map = new HashMap<>();        map.put(1, "程啸");        map.put(2, "景向后山");        System.out.println("删除前:" + map);        Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();        while (iterator.hasNext()) {            Map.Entry<Integer, String> next = iterator.next();            if (next.getKey() == 1) {                iterator.remove();            }        }        System.out.println("删除后:" + map);    }}

输出结果:

删除前:{1=程啸, 2=景向后山}删除后:{2=景向后山}
原创粉丝点击