当前位置: 首页 > 编程笔记 >

Java8 forEach常用场景代码实例

房新翰
2023-03-14
本文向大家介绍Java8 forEach常用场景代码实例,包括了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循环是你不二的选择

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍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