您的位置:首页 > 编程语言 > Java开发

Java基础--JDK1.8新特性-Lamda

2016-11-14 17:18 555 查看
Java基础--JDK1.8新特性-Lamda

接口:

package com.test;

@FunctionalInterface  	//不允许定义其他抽象方法
public interface ILamdaDemo {

//java--属性(常量)和方法(抽象方法和默认方法,静态方法)
public static final int a = 100;
//抽象方法
public Integer sum(int a,int b);
//	public void sayHello();  //会报错,只会允许一个抽象方法

//匿名内部类可以调用接口的静态方法和默认方法,Lamda调用不到
//静态方法,可以定义多个
static void sayHi(){
System.out.println("我是接口的静态方法!");
};

//默认方法.可以定义多个
default void test(){
System.out.println("我是接口的默认方法!");
};
}


实现:

package com.test;

import java.util.Arrays;
import java.util.Comparator;

public class LamdaDemo {

/**
* Lamda表达式的主要作用是替代匿名内部类的繁琐写法,又三部分组成。
* 1、形参列表--行参列表允许省略形参类型,如只有一个形参,可以省略括号
* 2、箭头(->)
* 3、代码块
*/
public static void main(String[] args) {
Integer[] nums = {3,4,6,1,2,8,10};
//		Arrays.sort(nums);//从小到大排序
//		Arrays.sort(nums,new Comparator<Integer>() {
//			@Override
//			public int compare(Integer o1, Integer o2) {
//				return o2-o1;
//			}
//		});; //从大到小排序

Arrays.sort(nums,(a,b)->b-a); 	//a-b  从小到大排序,b-a  //从大到小排序

//		for (Integer integer : nums) {
//			System.out.println(integer);
//		}

//内部类实现方式
ILamdaDemo iLamdaDemo = new ILamdaDemo() {

@Override
public Integer sum(int a, int b) {
return a+b;
}
};
Integer x = iLamdaDemo.sum(10, 2);

//Lamda表达式  简写方式  ILamdaDemo iLamdaDemo2 = (a,b)->a+b;
ILamdaDemo iLamdaDemo2 = (a,b)->{
return a+b;
};

Integer x1 = iLamdaDemo2.sum(1, 2);
System.out.println(x1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java