java8函数式编程

前言  

      9月份出来java9,才想起来自己java8都没用过,赶紧爬爬代码熟悉下java8,不然又落伍了。

       java8引入lambda表达式,简化开发;引入流的并行化操作,提升性能。为了接口向后兼容,interface中新增default方法;interface中可加入static方法。

 

jdk8新特性一览

 

Lambda

      lambda编程时一种函数式编程,函数式编程的核心:在思考问题时,使用不可变值和函数,函数对一个值进行处理,印射成另外一个值。

     lambda表达式特征

  • 函数接口(只有一个抽象方法)
  • 表达式静态类型
  • 类型推断
  • 引用值(final),而不是变量

   常用的函数接口

Java中重要的函数接口
接口(用途) 参数

返回类型

Predicate<T >    (断言) T boolean   
Consumer<T>   (消费) T void
Function<T,R>    (函数) T R

Supplier<T>   (工厂方法)

None T
UnaryOperator<T>   (逻辑非) T T
BinaryOperator<T>   (二元操作) (T,T) T

代码实例

package zl;

import java.util.function.BiFunction;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;

/**
 * 常用函数式接口
 *
 */
public class FuntionDemo {
/**
 * @param args
 */
public static void main(String[] args) {
	/**判断大于0*/
	Predicate<Integer> predicate = i -> i>0;
	boolean test = predicate.test(1);
	System.out.println(test);//true
	
	/**打印字符串*/
	Consumer<String> consumer =System.out::print;
	consumer.accept("hello\r\n");//打印hello
	
	/**字符串转int*/
	Function<String, Integer> function = Integer::valueOf;
	Integer apply = function.apply("1");
	System.out.println(apply);//1
	
	/**返回空字符串*/ //简化版function,没有输入参数
	Supplier<String> supplier =  String::new;
	String string = supplier.get();
	System.out.println(string.length());//0
	
	/**返回相反值*/ //简化版function(一元操作符),输入参数与输入参数为同一类型
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值