JAVA中HashMap如何删除元素

 我来答
加百列windy
高粉答主

推荐于2019-09-20 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:96万
展开全部

HashMap删除元素根据其遍历方式一般有两种方法,实例演示如下:

一、采用foreach模式,适用于不需要修改HashMap内元素的遍历,只需要获取元素的键/值的情况。

1、遍历如下:

2、此时删除HashMap中的元素,Java很有可能会在运行时抛出异常。

运行上面的代码,Java抛出了 java.util.ConcurrentModificationException 的异常。并附有如下信息。

可以推测,由于在遍历HashMap的元素过程中删除了当前所在元素,下一个待访问的元素的指针也由此丢失了。

二、采用迭代器遍历,不仅适用于HashMap,对其它类型的容器同样适用。

1、采用这种方法的遍历,可以用下文提及的方式安全地对HashMap内的元素进行修改,并不会对后续的删除操作造成影响。

2、运行结果没有显示,表明HashMap中的元素被正确删除了,代码如下:

扩展资料:

HashMap的遍历中删除元素的特殊情况:

如果HashMap中的键值同样是一个HashMap,假设你需要处理的是 HashMap<HashMap<String, Integer>, Double> myHashMap 时,可能需要修改myHashMap中的一个项的键值HashMap中的某些元素,之后再将其删除。

这时,单单依靠迭代器的 remove() 方法是不足以将该元素删除的。

具体代码如下:

原因在于,迭代器遍历时,每一次调用 next() 函数,至多只能对容器修改一次。上面的代码则进行了两次修改:一次添加,一次删除。

tianheww
推荐于2017-10-13 · TA获得超过140个赞
知道小有建树答主
回答量:230
采纳率:66%
帮助的人:70.8万
展开全部
HashMap的结构是<key, value>
想要移除某个元素,只要移除某个key下面的value即可。
如:
package yiibai.com;

import java.util.*;

public class HashMapDemo {
public static void main(String args[]) {
// 构造hashmap
HashMap newmap = new HashMap();

// 给hashmap赋值
newmap.put(1, "tutorials");
newmap.put(2, "point");
newmap.put(3, "is best");

System.out.println("Values before remove: "+ newmap);

// 移除key为2的value
newmap.remove(2);

System.out.println("Values after remove: "+ newmap);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhmanddt
2012-06-24
知道答主
回答量:32
采纳率:0%
帮助的人:12.2万
展开全部
如果是真想把java学号,一些普通的方法不要总想着去问别人。一定要学会查看Api文档,当学会了查看API后你会发现自己的编程能力有很大的提升
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wandan33
2012-07-12
知道答主
回答量:15
采纳率:0%
帮助的人:9.9万
展开全部
应为他是无序的,所以谈不上索引,只有通过键来删!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1b31c3452
2012-06-26
知道答主
回答量:1
采纳率:0%
帮助的人:1613
展开全部
有remove(key)函数的,参数key是要删除元素的键值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式