遍历Map的方法, 我总结了5种, CoreJava中给出的是第一种使用forEach+lambda表达式, 我认为这种方法应该是最好的, 但是只能在Java8之后的版本使用;
建议优先使用第一种和第四种(类似第二种);
遍历Map:
第一种可以使用Map的forEach方法加上Java8的lambda表达式:
第二种可以使用Map.Entry来遍历Map的条目:
第三种可以使用for结合Map的keySet和values方法来遍历:
第四种是使用迭代器, 这种是看起来比较熟悉而且效率挺高的, 但是要注意, 不能在使用for循环访问迭代器的同时使用remove操作, javadoc说这样会发生不可预期的错误, 如果希望迭代的同时删除元素, 可以使用while来遍历:
当然还有第五种是在遍历keySet的时候调用get方法获取对应的值, 但是这种方法太捞了, 效率很低, 不提了, 就上一段测试代码吧:
测试代码如下:
输出如下:
贴一些map和sortedmap的常用方法:
最新评论