HashMap的遍历
2022-09-22 22:43:26
[TOC]
遍历方式
EntrySet(推荐)
常用的遍历方法,性能不错
1 | //entrySet 获取key and value |
Iterator(次之)
在用foreach遍历map时,如果改变其大小,会报错,但如果只是删除元素,可以使用Iterator的remove方法删除元素
1 | // Iterator entrySet 获取key and value |
Lambda(简洁)
java8提供了Lambda表达式支持,语法看起来更简洁,可以同时拿到key和value,不过,经测试,性能低于entrySet,所以更推荐用entrySet的方式
1 | // Lambda 获取key and value |
keySet 和 values
如果只需要map的key或者value,用map的keySet或values方法无疑是最方便的
1 | // KeySet 获取key |
总结
测试一般性能顺序为:
KeySet ~ Values ~ entrySet > Iterator > Lambda
如果只是获取key,或者value,推荐使用keySet或者values方式;
如果同时需要key和value推荐使用entrySet;
如果需要在遍历过程中删除元素推荐使用Iterator;
如果需要在遍历过程中增加元素,可以新建一个临时map存放新增的元素,等遍历完毕,再把临时map放到原来的map中。
本文参考自:谈谈java中遍历Map的几种方法