Java 8 Lambda 表达式

Java 8 Lambda 表达式

Java 8 以前,若我们想要把某些功能传递给某个方法,总要去写匿名类.
Lambda 表达式是一个匿名函数,我们可以把 lambda 表达式理解为一段 可以传递的代码(将代码段像数据一样传递)。使用它可以写出更简洁, 更灵 活的代码。作为一种更紧凑的代码风格,使 java 语言的表达式能力得到的提升。 Lambda 表达式的本质只是一个**“语法糖”**,由编译器推断并帮你转换包装为 常规的代码,因此你可以使用更少的代码来实现同样的功能。
案例1:

package com.ff.javaforword.lambda;

import java.sql.Array;
import java.util.Arrays;
import java.util.Comparator;

public class Demo {
    public static void main(String[] args) {
        //默认为升序
        /*String [] arr = {"d","b","a","c"};
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));*/
        //创建一个外部类调用
        /*String [] arr = {"d","b","a","c"};
        Arrays.sort(arr,new StringCom());
        System.out.println(Arrays.toString(arr));*/
        //创建一个内部类
       /* String [] arr = {"d","b","a","c"};
        Arrays.sort(arr,new StringCom1());
        System.out.println(Arrays.toString(arr));*/
        //创建接口的匿名内部类对象,简化写法
        String [] arr = {"d","b","a","c"};
        Arrays.sort(arr, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);
            }
        });
        System.out.println(Arrays.toString(arr));

    }
//内部类,不需要在外部创建类
   /* private static class StringCom1 implements Comparator<String> {
        @Override
        public int compare(String o1, String o2) {
            return o2.compareTo(o1);
        }
    }*/
}

package com.ff.javaforword.lambda;

import java.util.Comparator;
//自定义String排序规则
public class StringCom implements Comparator<String> {
    @Override
    public int compare(String o1, String o2) {
        return o2.compareTo(o1);
    }
}

案例2:

package com.ff.javaforword.lambda;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

public class Demo1 {
    /*
    lambda 语法 (参数)->{函数体}
    是匿名函数,一般在方法的参数为接口时代替之前的匿名内部类
    (a,b)参数可以不写.可以根据类型自己推断
    他是怎样推断的呢?
    要求接口中只有一个抽象方法
     */
    public static void main(String[] args) {
       /* String []array={"d","b","a","c"};
        Arrays.sort(array,((o1, o2) -> {return o2.compareTo(o1);}));
        System.out.println(Arrays.toString(array));*/
        JButton jButton= new JButton("按钮");
       /* jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {


            }
        });*/
        /*jButton.addActionListener((e -> {
            System.out.println("aaaaaaaa");
        }));*/
        
	//匿名内部类方式
       /*    
	new Thread(new Runnable() {
            @Override
            public void run() {

            }
        });*/
        new Thread(()->{
            System.out.println("llll");
        });
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值