函数式编程
neutron129
这个作者很懒,什么都没留下…
展开
-
Stream常用操作min,reduce
/** * min方法 * 用途:取出数据中最小值 */ public static void minEG() { List nums = Arrays.asList(1, 23, -45, 7, 9); Integer min = nums.stream() .min(Comparator.comparing(num -> num))原创 2016-05-24 06:52:22 · 5568 阅读 · 0 评论 -
Lambda表达式中类型推断
Lambda表达式中类型推断,是java7中引入目标类型推断的拓展。 java7中的菱形操作符,使javac推断处反省参数的类型。 /** * lambda表达式中类型推断 */ public static void targetType() { // new HashMap指定泛型类型 Map wordcounts = new HashMap(); // 使用菱原创 2016-05-23 06:29:09 · 912 阅读 · 0 评论 -
常用的函数接口
常用的函数接口: @FunctionalInterfacepublic interface Function { /** * Applies this function to the given argument. * * @param t the function argument * @return the function resu原创 2016-05-21 08:06:44 · 576 阅读 · 0 评论 -
函数接口
使用Lambda表达式,关系最紧密要数函数接口。 函数接口定义:只有一个抽象方法的接口。 函数接口作用:Lambda表达式的类型。 Lambda表达式和函数接口的关系? Lambda表达式,实现函数接口,返回该的匿名实现类的对象。 解释如下: BinaryOperator addExplicit = (Long x, Long y) -原创 2016-05-21 07:44:16 · 419 阅读 · 0 评论 -
Lambda表达式操作引用值,而非对象
Lambda表达式中操作的是引用值而不是对象。 如何理解呢?匿名内部类中如果引用它所在方法中的变量,那么该变量必须声明为final类型。即该变量只可以被赋值一次,不可以重复赋值使用。 类似地,Lambda表达式中引用的变量同样只可以赋值一次,表现形式上可以加上final,可以不使用final。但是本质上Lambda表达式中的变量仅能赋值一次。 public stat原创 2016-05-21 07:31:18 · 2655 阅读 · 0 评论 -
Lambda表达式类型推断
目标类型,Lambda表达式所在上下文环境的类型,比如将Lambda表达式负值给局部变量,或者作为方法参数。局部变量或者参数类型就是Lambda表达式的目标类型。 比如作为方法参数,如果不显示标明Lambda表达式类型,那么就会由编译器根据上下文环境环境来推断出来。 类似于String[] arrs = {"str", "hello"};没有显示声明str或者hello的类型,但是原创 2016-05-21 07:27:59 · 567 阅读 · 0 评论 -
面向对象编程和函数式编程
面向对象编程是对数据进行抽象;函数式编程是对行为(方法)进行抽象; 什么是函数式编程,核心是将不可变值通过函数进行处理,映射成另一个数值.和数学中的函数理解相同. 什么是面向对象编程,核心是将所操作的数据抽象成类,将具体化为抽象,将豪华的法拉利变成设计图纸;原创 2016-05-21 06:23:57 · 690 阅读 · 0 评论 -
Lambda表达式
在说Lambda表示式之前,需要准备知识,如下 函数接口,是java中的接口,特殊地方在于接口中只有一个抽象方法,仅此而已。 Lambda表示式:实现函数接口,返回函数接口的匿名实现类的对象。 package com.neutron.java8.lambda;import java.awt.event.ActionListener;import java.u原创 2016-05-21 07:08:11 · 341 阅读 · 0 评论 -
Stream对数字处理
Stream中对数字处理 对基本类型特殊处理的方法命名规范。 1.如果方法返回类型是基本数据类型,则在前面加to,例如ToLongFunction。 2.如果参数是基本类型,则不需要前缀加上类型名即可,例如LongFunction. 3.如果高阶函数使用基本类型,则在操作后加上后缀To再加上基本类型,例如mapToLong。 可以看出,最终结果是基本数据类型原创 2016-05-24 07:14:21 · 661 阅读 · 0 评论 -
Stream流常用操作
package com.neutron.java8.stream.demo;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.util.stream.Stream;/** * Stream常用原创 2016-05-23 08:12:40 · 806 阅读 · 0 评论