package love.fs;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;public class HashMapTest { public static void main(String args[]) { HashMap hm = new HashMap(); hm.put("a", 2); hm.put("aa", 22); hm.put("aaa", 222); hm.put("aaaa", 222); hm.put("b", 3); hm.put("bb", 33); hm.put("bbb", 333); hm.put("bbbb", 3333); Iterator> it = hm.entrySet().iterator(); System.out.println("这里的内容是关于HashMap的遍历,可见并不是有序存储的"); while(it.hasNext()) { Map.Entry me = (Map.Entry)it.next(); System.out.print(me.getKey() + ": "); System.out.println(me.getValue()); } System.out.println("下面进行对HashMap的删除"); Iterator> it1 = hm.entrySet().iterator(); while(it.hasNext()) { Map.Entry me = (Map.Entry)it.next(); System.out.println(me.getKey()+":"); if(me.getKey().equals("aa")) { System.out.println("已找到值"); { hm.remove(me.getKey()); } } } }}这就是所有代码了,呵呵,希望能找到问题所在,哈哈
就是用:remove方法呀,你在remove之前判断一下有没有这个key呀,他的长度在跟你的remove变化吧.这样的事你自己写一个java做做测试就行。
remove 之后, iterator就可能失效了, 不能再使用, 会抛出异常的, java api里关于iterator接口的说明有提到
学习了。。