`
Tristan_S
  • 浏览: 378156 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JDK8 特性

    博客分类:
  • jj
 
阅读更多
java8
最多的两个特性是lambda和stream
1> lambda用来解决匿名类问题, 适用于集合排序
2> stream用来操作集合,和scala有点类似, 可以对集合做map reduce
还可以有类似SQL的groupingBy操作

--reduce() 是将集合中所有值结合进一个,Reduce类似SQL语句中的sum(), avg() 或count()
--如果要用原生的java来实现reduce很麻烦,要手动遍历集合,再做逻辑运算。 类似以前使用收集日志的功能

3> 其他还有 Optional.ofNullable 可以忽略子对象为空的情况


map(Function)
filter(Predicate)
forEach(Consumer)

Interface       Argument Return
Consumer<T> T    void
Function<T,R>   T         R
Predicate<T>    T         boolean
Supplier<T>     none      T


方法引用是使用两个冒号::这个操作符号,可以用lambda表达式来取代
调试peek方法,打印出内容,有点像js中的alert


Optional
有注意到,剛剛 Stream 的 findFirst 傳回的型態是 Optional 嗎?為什麼?因為也許過濾完每一行之後,沒有符合的條件。
那為什麼不傳回 null?嗯?Java 開發者最熟悉的 Exception 之一 NullPointerException 應該足以解釋傳回 Optional 而不是 null,JSR166 Java 並行 API 領導者 Doug Lea 討厭 null,快速排序發明者、圖靈獎得主 Tony Hoare 甚至說,null 的使用造成了數十億美元的損失。
Stream API 中有幾個方法都傳回 Optional,像是 findAny、findFirst、max、min、reduce 等方法。

max sum 就是reduce的一部分
sum()  reduce(0,(a,b)->a+b)
max()  reduce((max,len)->len>max?len:max)

collect是一种高级的reduce
可以用来groupby

分享到:
评论

相关推荐

    JDK8特性(Lambda表达式+StreamAPI简单示例代码)

    JDK8特性(Lambda表达式+StreamAPI的简单使用示例代码)

    JDK8新特性(pdf版)

    JDK8新特性 JDK8是Java开发平台的最新版本,自从1995年Java的诞生以来,Java已经发展了二十多年, Java仍是企业和开发人员的首选开发平台。JDK8新特性课程内容包括了解Java发展史、Lambda表达式、接口的增强、函数...

    jdk-8u401-windows-x64.zip

    1. **Lambda表达式**:这是JDK 8最重要的特性之一,它引入了函数式编程的概念,使得代码更加简洁、可读性强。Lambda表达式允许将匿名函数作为方法参数传递,或者用作方法的返回值。 2. **方法引用和构造器引用**:...

    jdk8新特性

    jdk8新特性,百度云盘。jdk8新特性,百度云盘。jdk8新特性,百度云盘。

    jdk8最新版本下载

    总之,JDK 8u271是Java开发不可或缺的一部分,尤其是对于那些依赖JDK 8特性的项目而言。无论是Lambda表达式带来的代码简洁性,还是日期和时间API提供的便利性,都是开发者日常工作中不可忽视的工具。通过定期更新到...

    centos下安装JDK8的方法

    ### CentOS 下安装 JDK8 的详细步骤与注意事项 #### 前言 在 CentOS 系统中安装 JDK8 ...这不仅包括基本的环境配置,还包括对 JDK8 新特性的测试,从而确保开发环境能够顺利支持 Java 8 及其后续版本的应用程序开发。

    《jdk8学习笔记》PPT+课后习题答案

    《JDK8学习笔记》是Java开发者们深入理解JDK8特性和改进的重要参考资料,尤其对于初学者和希望提升技术水平的程序员来说,是一份宝贵的资源。这份资料由林信良编写,结合了PPT讲解和课后习题答案,旨在帮助读者全面...

    jdk-8u261-docs-all.zip

    "jdk-8u261-docs-all.zip"是一个包含JDK8完整官方文档的压缩包,对于Java开发者来说,它是学习和查阅JDK8特性的宝贵资源。 文档中涵盖了以下几个主要部分: 1. **基础文档**:这部分介绍了Java平台的基础概念,...

    jdk8新特性.md

    jdk8新特性.md

    jdk-8u241_64.zip

    1. **lambda表达式**:这是JDK 8最具革命性的特性之一,它引入了函数式编程的概念。Lambda表达式允许将匿名函数作为方法参数传递,简化了对集合的处理,特别是通过Stream API进行的并行操作。 2. **默认方法**:在...

    jdk8新特性例子

    Jdk8新特性例子,内容包含 接口默认方法, 函数引用, java.util.stream api 和java.time api map的新增方法等。例子采用记事本编写,下载者需自行下载jdk8安装并配置好环境,编译(javac)运行(java)

    jdk-8u131-windows-i586.rar

    1. **lambda表达式**:这是JDK 8中最显著的新特性之一,它允许开发者以更简洁的方式编写函数式编程风格的代码。Lambda表达式可以作为方法参数,也可以用作返回类型,使得处理集合和事件等场合更为高效。 2. **方法...

    jdk8帮助文档(jdk8_API)

    Java Development Kit (JDK) 8 是Java编程语言的一个重要版本,它引入了许多新特性、改进和优化,极大地提升了开发者的生产力。这个压缩包“jdk8_API”包含了JDK 8的官方帮助文档,它是开发者理解和使用JDK 8的重要...

    jdk-8u271-linux-x64.tar.gz.rar

    总的来说,"jdk-8u271-linux-x64.tar.gz.rar"是一个针对64位Linux系统的JDK 8更新版本,它的安装和使用对于开发Java应用至关重要,特别是那些依赖JDK 8特性的项目。理解JDK的组成、版本信息、安装过程和主要特性,有...

    jdk-8u261-macosx-x64.dmg

    总的来说,"jdk-8u261-macosx-x64.dmg"是Java开发者在Mac上开发Java应用程序所需的必备组件,特别是对于那些依赖JDK 8特性的项目。通过提供这个镜像文件,可以方便社区成员快速获取并安装,避免因网络问题造成的困扰...

    jdk-8u131-windows-x64.zip

    1. **Lambda表达式**:这是JDK 8最显著的新特性之一,它允许开发者以更简洁的方式处理函数式编程任务,尤其是在集合操作上,如流(Stream API)的使用。 2. **方法引用和构造器引用**:方法引用使你可以直接引用一...

    JDK 8 Linux.zip

    JDK 8 是Java编程的一个里程碑,因为它引入了许多创新特性和改进,旨在提高开发人员的生产力和代码的可维护性。以下是一些关键的JDK 8特性: 1. **lambda表达式**:这是JDK 8中最大的亮点,它引入了一种新的语法...

    jdk8u211 download

    JDK 8是Java历史上的一个里程碑,因为它引入了许多新的特性和改进,极大地提升了开发效率和代码质量。以下是一些关键的JDK 8特性: 1. **Lambda表达式**:JDK 8引入了lambda表达式,这是一种更简洁的编写函数式编程...

    linux JDK8压缩文件安装包

    7. **JDK8特性**:JDK8引入了许多重要特性,包括Lambda表达式、函数式接口、Stream API、日期与时间API的改进以及新的编译器优化等。这些新特性极大地提升了Java的编程效率和代码质量。 8. **应用开发**:安装好JDK...

    jdk8官方文档

    Java Development Kit (JDK) 8是Java编程语言的一个重要版本,它引入了许多新特性、改进和优化。这个"jdk8官方文档"包含了详细的开发者指南、API参考、教程和其他资源,帮助开发者理解和利用JDK 8的功能。以下是文档...

Global site tag (gtag.js) - Google Analytics