如何利用JavaScript中的方法清除Map中的元素

如何利用JavaScript中的方法清除Map中的元素,第1张

size() 获取MAP元素个数

* isEmpty() 判断MAP是否为空

* clear() 删除MAP所有元素

* put(key, value) 向MAP中增加元素(key, value)

* remove(key) 删除指定KEY的元素,成功返回True,失败返回False

* get(key) 获取指定KEY的元素值VALUE,失败返回NULL

* element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL

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() 函数,至多只能对容器修改一次。上面的代码则进行了两次修改:一次添加,一次删除。

1.数组转换成map键值对

var m=new Map()

var arr=['a','b','v','r']

for(var i=0i<arr.lengthi++){

m.set(arr[i],i)//转变成新的map键值对,也可以像原有键值对添加新得键值对,具有唯一性,当重复赋值,则会使用最后一个值

}

console.log(m)        //{"a" =>0,"b" =>1,"v" =>2,"r" =>3}

 console.log(m.get('a'))       //查看键值对a的值     0

console.log(m.has('c'))      //查看是否存在这个键值对,返回布尔类型的值     false

console.log(m.delete('r'))            //删除r键值对   返回布尔类型       true

console.log(m)              //{"a" =>0,"b" =>1,"v" =>2}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11942720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存