java8--lambda表达式

1.目的:简化代码

2.总结:注意lamdba的规范,常量参数,实现接口

package lamdmademo;

import java.time.LocalDate;
import java.util.*;

public class Demo {
    public static void main(String[] args) {
        Demo demo=new Demo();

        //lambda表达式
        Integer num=2;
        Converter<String,Integer> s=(param)-> System.out.println(param+num);
        s.convert(3);

        LocalDate date=LocalDate.now();
        System.out.println(date);

        //使用lambda排序
        List<String> list= new ArrayList<>();
        List<String> list2= new ArrayList<>();
        list.add("hvfds");
        list.add("abref");
        list.add("csdrv");
        list.add("bbsrd");
        list2.add("hasrdb");
        list2.add("aasrb");
        list2.add("carsb");
        list2.add("barvb");
        
        //使用java7排序
        System.out.println("使用java7排序");
        demo.sortUsingjdk7(list);
        //使用java8排序
        System.out.println("使用java8排序");
        demo.sortUsingjdk8(list2);

        System.out.println(list);
        System.out.println(list2);

        //lambda实现接口的方法
        MathOperation additional=(Integer s1,Integer s2)-> s1+s2 ;
        MathOperation device=(Integer s1,Integer s2)->s1/s2;
        MathOperation sub=(Integer s1, Integer s2)->s1-s2;
        //调取operate方法
        System.out.println("10+5="+demo.operate(10,5,additional));
        System.out.println("10/5="+demo.operate(10,5,device));
        System.out.println("10-5="+demo.operate(10,5,sub));

        //定义变量,两种情形,一变量声明为final,另一种变量可以不用final声明,但之后不能进行修改
        final String hello="HELLO,";
        //实现接口方法
        SayHello sayHello=message -> System.out.println(hello+message);
        //调用方法
        sayHello.sayMessage("JDK8");



    }

    //使用java7排序
    //匿名内部类相当于接口实现
    public void sortUsingjdk7(List<String> list){
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s1.compareTo(s2);
            }
        });
    }

    // 使用 java 8 排序
    public void sortUsingjdk8(List<String> list){
        Collections.sort(list,(s1,s2) -> s1.compareTo(s2));
    }






    //接口一
    interface MathOperation {
        int operation(Integer a, Integer b);
    }
    //接口二
    interface SayHello{
        void sayMessage(String message);
    }
    //接口三
    interface Converter<T1,T2> {
        void convert(int i);
    }

    //使用接口一的方法
    private int operate(Integer a,Integer b,MathOperation mathOperation){
        return mathOperation.operation(a,b);
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值