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循环是你不二的选择
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍java中Lambda常用场景代码实例,包括了java中Lambda常用场景代码实例的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java中Lambda常用场景的具体代码,供大家参考,具体内容如下 以上所述是小编给大家介绍的[java中Lambda常用场景详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊教程网站
本文向大家介绍Java CountDownLatch应用场景代码实例,包括了Java CountDownLatch应用场景代码实例的使用技巧和注意事项,需要的朋友参考一下 Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 你可以向Cou
常用场景是围绕以场景分析为主,满足企业中市场、运营、产品等不同业务部门的不同角色,在使用通用的一些分析功能时,可以自定义添加常用场景;以达到在使用分析平台时,可以直接查看、分析特定的业务场景(例如:注册分析、渠道分析、开户分析等等)。 功能及使用 1.添加常用场景 你可以在通用分析整体、事件、漏斗使用分析时,可以把一些业务场景的分析,添加到「常用场景」分析中,添加后,之后在「常用场景」分析中可以直
本篇为Powershell攻击指南——黑客后渗透之道系列之实战篇,主要介绍的一些实用的利用方式与利用场景和一些实用工具。 在实际的渗透环境中我们利用Powershell的方式无非两种: 使用编码的方式对Powershell命令进行编码之后运行 远程下载Powershell代码之后直接运行 两种方式各有利弊,第一种比较方便直接编码即可执行,第二种需要到一台拥有公网IP的机器,那么在实际的渗透环境中如
本文向大家介绍Cocos2d-x UI开发之场景切换代码实例,包括了Cocos2d-x UI开发之场景切换代码实例的使用技巧和注意事项,需要的朋友参考一下 cocos2d-x中的场景切换是通过导演类调用相应的方法完成的,可以通过CCDirector::sharedDirector()->replaceScene()方法切换场景,参数是要切换的新场景,这种方法会释放掉旧的场景。通过pushScene
本文向大家介绍ArrayList和LinkedList区别及使用场景代码解析,包括了ArrayList和LinkedList区别及使用场景代码解析的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是Java编程中ArrayList和LinkedList区别及使用场景的相关内容,具体介绍如下。 1、ArrayList是基于数组实现的,其构造函数为: ArryList初始化时,elementDa