1、函数式编程:一种相对于命令式编程的方式,命令式编程关注编程过程,函数式编程注重结果,不关注实现过程。
列字:数堆中寻找最小值
import java.util.stream.IntStream;
//寻找函数中的最小值
public class Test1 {
public static void main(String[] args) {
int [] arr={1,4,55,34,3,-6};
int temp=Integer.MAX_VALUE;
for (int num:arr) {
temp=num<temp?num:temp;
}
System.out.println("命令式:"+temp);
//JDK1.8+ 函数式编程
int target= IntStream.of(arr).min().getAsInt();
System.out.println("函数式:"+target);
}
}
Jdk 1.8 lambda表打式:
package com.tian.test;
public class Test2 {
public static void main(String[] args) {
//jdk 1.8之前
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("非lambda表打式,繁琐");
}
}).start();
//jdk 1.8+ lambda 表达式
new Thread(()->System.out.println("lambda表打式,简洁易读")).start();
}
}
带“->”的代码就称为lambda表打式。
Lambda表打式常见写法:
package com.tian.test;
public class LambdaDomo1 {
public static void main(String[] args) {
InterFace1 i1=(i)->i*5;
//最常见
InterFace1 i2=i->i*5;
InterFace1 i3=(int i)->i*5;
InterFace1 i4=(i)->{
System.out.println("多行");
return i*5;
};
}
}
interface InterFace1{
int doubleNumber(int num);
}