首页 > 编程知识 正文

java遍历hashmap<k v>_Java HashMap 遍历方式探讨

时间:2023-05-03 05:49:52 阅读:30062 作者:3057

在JDK8之前,可以使用keySet或entrySet遍历HashMap。 JDK8中引入了map.foreach。

实际上,keySet通过迁移到迭代器对象和从hashMap中检索与key对应的value进行了两次遍历。 entrySet在条目中只遍历一次就包含key和value会更有效率。 对于JDK8,请使用Map.foreach方法。

1. keySet和entrySet

1.1基本使用方法

keySet:

Map map=new HashMap (;

Iterator it=map.keySet ().iterator );

对象密钥;

对象值;

while(it.Hasnext ) ) ) )。

key=it.next (;

value=map.get(key;

system.out.println (key ' : ' value;

}

企业:

Map map=new HashMap (;

Iterator it=map.entrySet ().iterator );

对象密钥;

对象值;

while(it.Hasnext ) ) ) )。

映射. entry entry=(映射. entry ) it.next );

key=entry.getKey (;

value=entry.getValue (;

system.out.println(key'='value;

}

2. Map.foreach

从JDK8开始,引入了Map.foreach。

Map.foreach的本质仍然是entrySet

默认语音反馈(biconsumersuperk? super v动作) {

objects.require nonnull (动作;

for (map.entry entry : entryset ) () () ) ) ) ) ) )。

k;

v;

try {

k=entry.getKey (;

v=entry.getValue (;

} catch (illegalstateexceptionise ) )

//thisusuallymeanstheentryisnolongerinthemap。

thrownewconcurrentmodificationexception (ise;

}

action.accept(k,v );

}

}

与lambda表达式一起使用会使操作变得容易。

2.1使用Java 8的foreach lambda表达式遍历Map

Map items=new HashMap (;

items.put(a ),10 );

items.put('b ',20 );

items.put('c ',30 );

items.put('d ',40 );

items.put('e ',50 );

items.put('f ',60 );

items.foreach((k,v )-system.out.println ) ) item: ) k'count: ) v );

items.foreach((k,v )-{

system.out.println (item : ' k ' count : ' v );

if(e ).equals ) ) ) {

system.out.println(Helloe );

}

);

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。