hash使用迭代器会出现什么错误

来源:9-4 HashMap与ConcurrentHashMap解析

杜小牧

2019-03-04

写回答

1回答

Jimin

2019-03-04

你好,你这里说的是对hashmap对象的迭代,还是hashmap某个方法使用迭代器?

通常如果只是读的话,其实很少会出问题,一般只有在迭代时进行更新操作,才有可能出现错误,但也要看实际写法,拿遍历hashmap举个例子:

第一种: 使用entrySet

Map map = new HashMap(); 
Iterator iter = map.entrySet().iterator(); 
while (iter.hasNext()) { 
    Map.Entry entry = (Map.Entry) iter.next(); 
    Object key = entry.getKey(); 
    Object val = entry.getValue(); 


第二种: 使用keySet

Map map = new HashMap(); 
Iterator iter = map.keySet().iterator(); 
while (iter.hasNext()) { 
    Object key = iter.next(); 
    Object val = map.get(key); 

(补充一下,第一种速度比第二种要快,因为第一种只要遍历一次)

0
0

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程