A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//写一个方法根据传入的value值,删除Map集合中值为value的映射关系
//简单来说就是根据传入的 值 删除 键值对
//让我现场写还可能真出糗{:3_47:}



11 个回复

正序浏览
本帖最后由 zeus00456 于 2014-8-19 12:06 编辑
咸菜+萝卜干 发表于 2014-8-18 22:56
我一开始也是用的增强for循环,但是不能删,抛迭代器异常,肯定也是并发操作的问题,没有迭代器思路清晰 ...

使用增强for的话:
只能用entrySet的方式,通过争抢for迭代出来的键值关系描述对象(Map.entry)获取键名(KeySet在增强for时被自动改了名字,必须删不了)。将这些键名值与规定值一致的保存到容器中,然后遍历此容器,依次map.remove(容器中的键)



回复 使用道具 举报
{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}{:2_31:}
回复 使用道具 举报
jeromechen 发表于 2014-8-18 23:22
这个题目老毕讲过了例子,看来是得每个细节都重视啊

还真不记得了!{:3_47:}
回复 使用道具 举报
这个题目老毕讲过了例子,看来是得每个细节都重视啊
回复 使用道具 举报

写之前思路搞清晰,很ok{:3_47:}骚年还需要多写写啊!
回复 使用道具 举报
梧桐树下 来自手机 中级黑马 2014-8-18 23:04:32
地板
自己写还是费劲
回复 使用道具 举报
象牙 发表于 2014-8-18 22:41
能看懂,自己写还真要思考一会了

刚刚查文档,发现Map提供了一个得到所有 值 的集合的方法,values(),返回一个包含所有值的Collection集合,这个倒是好用,取出来一个个判断下就ok,而且也是与Map关联的,修改这个Collection的值就会修改Map的值{:3_47:}
回复 使用道具 举报
hsy 发表于 2014-8-18 22:31
这里用到了迭代器,其实我是很喜欢用增强for的,简单明了。

我一开始也是用的增强for循环,但是不能删,抛迭代器异常,肯定也是并发操作的问题,没有迭代器思路清晰明了!{:3_47:}
回复 使用道具 举报
能看懂,自己写还真要思考一会了
回复 使用道具 举报
这里用到了迭代器,其实我是很喜欢用增强for的,简单明了。
回复 使用道具 举报
虽然很简单,但是如果对迭代器没有较为深入的了解,还真可能搞笑!——对Map集合的keySet方法返回的Set集合进行操作也会改变Map集合,而对迭代器的操作又会影响Set集合!一环扣一环!有点意思!{:3_47:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马