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

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);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值