Java8 forEach常用场景代码实例
forEach and Map
1.1 通常这样遍历一个Map
Map<String, Integer> 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); for (Map.Entry<String, Integer> entry : items.entrySet()) { System.out.println("Item : " + entry.getKey() + " Count : " + entry.getValue()); }
1.2 在java8中你可以使用 foreach + 拉姆达表达式遍历
Map<String, Integer> 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(k)){ System.out.println("Hello E"); } });
forEach and List
2.1 通常这样遍历一个List.
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); for(String item : items){ System.out.println(item); }
2.2 在java8中你可以使用 foreach + 拉姆达表达式 或者 method reference(方法引用)
List<String> items = new ArrayList<>(); items.add("A"); items.add("B"); items.add("C"); items.add("D"); items.add("E"); //lambda //Output : A,B,C,D,E items.forEach(item->System.out.println(item)); //Output : C items.forEach(item->{ if("C".equals(item)){ System.out.println(item); } }); //method reference //Output : A,B,C,D,E items.forEach(System.out::println); //Stream and filter //Output : B items.stream() .filter(s->s.contains("B")) .forEach(System.out::println);
关于效率问题,网上有大神进行测试后总结出:最快的是增强for循环
最终结论
普通(数量级10W以下,非并行)遍历一个集合(List、Set、Map)如果在意效率,不要使用java8的foreach,虽然它很方便很优雅
任何时候使用增强for循环是你不二的选择
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法
这篇文章主要介绍了SpringBoot集成Spring Security用JWT令牌实现登录和鉴权的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-05-05Springboot如何使用mybatis实现拦截SQL分页
这篇文章主要介绍了Springboot使用mybatis实现拦截SQL分页,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-06-06IDEA Error:java: 无效的源发行版: 17错误
本文主要介绍了IDEA Error:java: 无效的源发行版: 17错误,这个错误是因为您的IDEA编译器不支持Java 17版本,您需要更新您的IDEA编译器或者将您的Java版本降级到IDEA支持的版本,本文就来详细的介绍一下2023-08-08git stash 和unstash的使用操作,git unstash failed
这篇文章主要介绍了git stash 和unstash的使用操作,git unstash failed,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02springboot2.0 @Slf4j log 彩色日志配置输出到文件
这篇文章主要介绍了springboot2.0 @Slf4j log日志配置输出到文件(彩色日志),解决方式是使用了springboot原生自带的一个log框架,结合实例代码给大家讲解的非常详细,需要的朋友可以参考下2023-08-08
最新评论