黑马程序员技术交流社区

标题: 关于Map [打印本页]

作者: 丸子    时间: 2014-9-2 18:45
标题: 关于Map
本帖最后由 丸子 于 2014-9-2 19:42 编辑

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Excise6Map {

        /**
         * 写个方法,通过传入的map集合中某个元素的value值,删除这个元素。
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Map<Integer,String> map=new HashMap<Integer,String>();
                map.put(1, "aaaa");
                map.put(2, "bbbb");
                map.put(3, "cccc");
                String x="aaaa";
//                if(map.containsKey(1))
//                        map.remove(1);

                System.out.println(map);
                Set<Integer> key=map.keySet();
                for(Integer i:key)
                        if(x==map.get(i))
                                map.remove(i);
                System.out.println(map);
                                
        }

}
作者: 丸子    时间: 2014-9-2 18:47
有误,如何解决及错误原因?
作者: java_dream    时间: 2014-9-2 19:36
丸子 发表于 2014-9-2 18:47
有误,如何解决及错误原因?

集合在迭代过程中是不允许改变集合中的元素的,这是集合采用了快速失败机制的原因。
解决办法:
可以定义一个数组或集合保存包含value值的key,迭代完成后,遍历保存key的数组或集合来删除map的key-value对
作者: 丸子    时间: 2014-9-2 19:42
java_dream 发表于 2014-9-2 19:36
集合在迭代过程中是不允许改变集合中的元素的,这是集合采用了快速失败机制的原因。
解决办法:
可以定义 ...

多谢!高手
作者: 这个夏天的芬芳    时间: 2014-9-2 22:35
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
作者: MeryStyle    时间: 2014-9-2 22:54
藤椅 高手啊。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2