转自:https://www.cnblogs.com/go-onxp/p/jdk8.html

java8 forEach 在Map和List中的使用

原始的使用

  1. Map<String, Integer> items = new HashMap<>();
  2. items.put("A", 10);
  3. items.put("B", 20);
  4. items.put("C", 30);
  5. items.put("D", 40);
  6. items.put("E", 50);
  7. items.put("F", 60);
  8.  
  9. for (Map.Entry<String,Integer> entry : items.entrySet()){
  10. System.out.println("key:"+entry.getKey()+";value:"+entry.getValue());
  11. }
  12. //output
  13. A---10
  14. B---20
  15. C---30
  16. D---40
  17. E---50
  18. F---60

forEach 使用方式

  1. items.forEach((k,v)->System.out.println("key : " + k + "; value : " + v));
  2.  
  3. //output
  4. key : A value : 10
  5. key : B value : 20
  6. key : C value : 30
  7. key : D value : 40
  8. key : E value : 50
  9. key : F value : 60
  1. items.forEach((k,v)->{
  2. System.out.println("Item : " + k + " Count : " + v);
  3. if("E".equals(k)){
  4. System.out.println("Hello E");
  5. }
  6. });
  7.  
  8. key : A; value : 10
  9. key : B; value : 20
  10. key : C; value : 30
  11. key : D; value : 40
  12. key : E; value : 50
  13. Hello E

java8 List 原先的使用方式

  1. List<String> arrayList = new ArrayList<>();
  2. arrayList.add("A");
  3. arrayList.add("B");
  4. arrayList.add("C");
  5. arrayList.add("D");
  6. arrayList.add("E");
  7.  
  8. for (String item:arrayList){
  9. System.out.println(item);
  10. }

java8 forEach 使用方式

  1. arrayList.forEach(item->System.out.println(item));
  2.  
  3. arrayList.forEach(System.out::println);
  4.  
  5. arrayList.forEach(item->{
  6. if("C".equals(item)){
  7. System.out.println(item);
  8. }
  9. });
  10.  
  11. arrayList.stream()
  12. .filter(s-> s.contains("B")||s.contains("C"))
  13. .forEach(System.out::println);
  14.  
  15. arrayList.stream()
  16. .filter(s->s.contains("E"))
  17. .findFirst().ifPresent(s -> System.out.println(s));

java8新特性forEach在Map和List的应用的更多相关文章

  1. java8新特性:对map集合排序

    一.简单介绍Map 在讲解Map排序之前,我们先来稍微了解下map,map是键值对的集合接口,它的实现类主要包括:HashMap, TreeMap, Hashtable以及LinkedHashMap等 ...

  2. java8新特性--Stream的基本介绍和使用

    什么是Stream? Stream是一个来自数据源的元素队列并可以进行聚合操作. 数据源:流的来源. 可以是集合,数组,I/O channel, 产生器generator 等 聚合操作:类似SQL语句 ...

  3. java8新特性全面解析

    在Java Code Geeks上有大量的关于Java 8 的教程了,像玩转Java 8--lambda与并发,Java 8 Date Time API 教程: LocalDateTime和在Java ...

  4. Java8新特性

    Java8新特性 Java8主要的新特性涵盖:函数式接口.Lambda 表达式.集合的流式操作.注解的更新.安全性的增强.IO\NIO 的改进.完善的全球化功能等. 1.函数式接口 Java 8 引入 ...

  5. Java8 新特性之Stream----java.util.stream

    这个包主要提供元素的streams函数操作,比如对collections的map,reduce. 例如: int sum = widgets.stream() .filter(b -> b.ge ...

  6. 这可能是史上最好的 Java8 新特性 Stream 流教程

    本文翻译自 https://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples/ 作者: @Winterbe 欢迎关注个人微信公众 ...

  7. 干货 | Java8 新特性教程

    本教程翻译整理自 https://github.com/winterbe/java8-tutorial 本教程首发自个人网站: https://www.exception.site/java8/jav ...

  8. Java8新特性之Collectors

    参考:Java8新特性之Collectors 在第二天,你已经学习了Stream API能够让你以声明式的方式帮助你处理集合.我们看到collect是一个将管道流的结果集到一个list中的结束操作.c ...

  9. 乐字节-Java8新特性之Optional

    上一篇小乐带大家了解了Java新特性之Stream,接下来将会继续述说Java新特性之Optional Optional<T>类(java.util.Optional)是一个容器类,代表一 ...

随机推荐

  1. ActiveMQ-5.15.2下载和启动(windows)

    一.下载和部署 我的ActiveMQ版本是 5.15.2,参照别人家的博客,下载和启动照样成功.别人家的博客地址: http://blog.csdn.net/clj198606061111/artic ...

  2. 转载--无弹窗APT渗透实验

    转载--无弹窗APT渗透实验 文章作者:亚信安全,转载自 FreeBuf.COM APT攻击方式花样繁多,我研究最近的流行的APT攻击方式,在本地搭建环境模拟一次简单的APT攻击,在模拟攻击过程中发现 ...

  3. 性能测试day03_前端分析调优思路

    刚刚看到有人支持我写的博客,表示还是比较感动的,发现热心的用户在我的博客留言说“一个系统每天有200万在线用户,问我怎么设计性能场景?”,其实这个问题呢就属于业务没理清,这个问题就像我问你,一个城市一 ...

  4. leetcode20:有效的括号

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 注意空字符串可被认 ...

  5. Laravel常见问题集锦

    1.提示:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes? ...

  6. scrollview嵌套recyclerview卡顿现象

    方式一xml: android:nestedScrollingEnabled="false" <android.support.v7.widget.RecyclerView ...

  7. 6.Python enumerate 特性

    enumerate()可参考: list1 = ["这", "是", "一个", "测试"] for index,ite ...

  8. ccc切割刚体

    // http://www.emanueleferonato.com/2011/08/05/slicing-splitting-and-cutting-objects-with-box2d-part- ...

  9. 38.Spring-spring和hibernate整合.md

    目录 1.定义各种类对象 2.创建Hibernate配置文件 3.配置applicationContext.xml 4.注意事项 1.定义各种类对象 package per.liyue.sh.demo ...

  10. Unity与安卓IOS交互

    记录下  安卓与Unity交互中  跳坑  找到的资料. <1>建立交互 http://blog.csdn.net/lizhengwei1989/article/details/54631 ...