java8:lambda表达式

Dream      2022-05-07     108

关键词:

1、lambda表达式的书写

(1)lambda表达式:在java中Lambda表达式是对象,他们必须依赖于一类特别的对象类型函数式接口

@FunctionalInterface
interface MyInterface1{
    void myMethod1();
}

@FunctionalInterface
interface MyInterface2{
    void myMethod2();
}

public class Test1 {
    public static void main(String[] args) {
        MyInterface1 interface1=()->{};
        System.out.println(interface1.getClass().getInterfaces()[0]);

        MyInterface2 interface2=()->{};
        System.out.println(interface2.getClass().getInterfaces()[0]);
    }
}
表达式的书写一定要根据上下文信息(两个函数式接口):
例如:
interface MyInterface2{
    void myMethod2();
}

接口是无参数的,那么lambda表达式的小括号代表参数内容(这里为空),{ },代表的是接口中的内容(这里面的函数式接口不接收参数,不返回值,():方法的参数,{}:方法的实现),函数式接口是直接找的抽象方法。

 

2、Runable接口

(1)它是一个函数式接口,因为该接口只有一个抽象方法:

@FunctionalInterface
public interface Runnable {
    /**
     * When an object implementing interface <code>Runnable</code> is used
     * to create a thread, starting the thread causes the object‘s
     * <code>run</code> method to be called in that separately executing
     * thread.
     * <p>
     * The general contract of the method <code>run</code> is that it may
     * take any action whatsoever.
     *
     * @see     java.lang.Thread#run()
     */
    public abstract void run();
}

(2)创建一个线程:

普通方式:

new Thread(new Runnable() {
            @Override
            public void run() {

            }
        }).start();

lambda表达式:

new Thread(()->System.out.println("ni hao")).start();

 

3、应用

(1) 小写转换为大写:

  public static void main(String[] args) {
        List<String> list= Arrays.asList("jia","you");
        list.forEach(item->System.out.println(item.toUpperCase()));
    }
JIA
YOU

(2)小写转大写后,在存储到一个新的集合中:

    public static void main(String[] args) {
        List<String> list= Arrays.asList("jia","you");
        List<String> list1=new ArrayList<>();
        list.forEach(item->list1.add(item.toUpperCase()));
        list1.forEach(item->System.out.println(item));
    }

转化为流后处理:

    public static void main(String[] args) {
        List<String> list= Arrays.asList("jia","you");
        list.stream().map(item->item.toUpperCase()).forEach(item->System.out.println(item));
    }

方法的引用方式实现:

   public static void main(String[] args) {
        List<String> list= Arrays.asList("jia","you");
        list.stream().map(String::toUpperCase).forEach(item->System.out.println(item));
    }

 

java8新特性lambda表达式

一、Lambda表达式是什么?Lambda读音:拉姆达。Lambda是一个匿名函数,匿名函数就是一个没有名字的函数。Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)。Lambda表达式可以使代码变的更加简洁紧凑。语法lambda... 查看详情

java8lambda表达式

Java8Lambda表达式语法lambda表达式的语法格式如下:(parameters)->expression或(parameters)->{statements;}Lambda表达式实例publicclassCalculator{interfaceIntegerMath{intoperation(inta,intb);}publicintoperateBinary(inta,in 查看详情

java8中的lambda表达式

Lambda是什么Lambda表达式,也可称为闭包,是java8的新特性,作用是取代大部分内部类,优化java代码结构,让代码变得更加简洁紧凑。Lambda的基本语法 (expression)->expression或(expression)->{statements;} Lambda最重要特点用()->{}... 查看详情

java8——lambda表达式

...bda表达的应用做详细了解。以及与内部类的差异点。Lambda表达式Lambda表达式是JavaSE8版本中引入的新的语法糖。将功能看做方法参数,将代码看做数据。Lambda表达式语法:LambdaParameters->LambdaBodyLambda表达式分为三部分:参数列表-... 查看详情

java8新特性——lambda表达式

其实有规律,总结一下规律就行packagelambda;/*lambda表达式的使用1.举例:()->Integer.compare(o1,o2);2.格式:lambda形参列表(接口中的抽象方法形参列表)->lambda体(重写抽象方法的方法体)3.lambda表达式的使用总结:lambda左边的形参列表... 查看详情

java8lambda表达式示例

例1、用lambda表达式实现Runnable我开始使用Java8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java8之前的runnable实现方法,需要4行代码,而使用lambda表达式只需要一行代码。我们在这... 查看详情

java8新特性你知道java8为什么要引入lambda表达式吗?(代码片段)

...官竟然问他这样一个问题:你说说Java8中为什么引入Lambda表达式?引入Lambda表达式后有哪些好处呢?还好这个朋友对Java8早有准备。不过,如果是看文章的你出去面试,面试官问你这样的问题,你是否也能轻松回答呢?什么是Lambd... 查看详情

java8之lambda表达式详解(代码片段)

...文:http://blog.csdn.net/jinzhencs/article/details/50748202 lambda表达式详解一.问题1.什么是lambda表达式? 2.lambda表达式用来干什么的? 3.lambda表达式的优缺点? 4.lambda表达式的使用场景? 5.lambda只是一个语法糖吗?二.概... 查看详情

一文看懂java8的lambda表达式!

一文看懂Java8的Lambda表达式!IT领域的技术日新月异,Java14很快就要问世了,但是对于国内的许多程序员来说,连Java8都还没有真正掌握。今天,我们就来温习一下Java8的特性之一,Lambda表达式。Lambda表达式的前世--匿名类以往,... 查看详情

java8新特性:lambda表达式函数式接口以及方法引用(代码片段)

文章目录Java8新特性:Lambda表达式1.Lambda表达式概念2.Lambda表达式语法3.函数式接口(FunctionalInterface)4.Lambda表达式精简语法5.方法引用(MethodReference)5.1实例方法引用5.2静态方法引用5.3构造方法引用Java8新特性:Lambda表达式1.Lambd... 查看详情

java8新特性--lambda表达式

一、Lambda表达式是什么?Lambda表达式有两个特点一是匿名函数,二是可传递。匿名函数的应用场景是通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用Lambda表达式。lambda表达式所表示的匿名函数的内容应该是... 查看详情

java8lambda的使用

...定义匿名函数,而在java8中lambda是匿名内部类例1、用lambda表达式实现Runnable我开始使用Java8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例。看一下Java8之前的runnable实现方法,需要4行代码,... 查看详情

java8新特性-lambda

1.什么是lambda表达式(1)lambda表达式也被称为箭头函数,匿名函数,闭包。(2)lambda表达式体现的是轻量级函数式编程思想。(3)->符号式lambda表达式核心操作符号,符号左侧是操作函数,右侧是操作表达式。(4)jdk1.8新特性 2.ModelC... 查看详情

java8新特性-lambda表达式

...了java.util.funcion包,里面包含常用的函数接口,这是Lambda表达式的基础,Java集合框架也新增部分接口,以便与Lambda表达式对接。Collections中的常用函数接口Java集合框架的接口继承结构:   上图中蓝色标记和橙色标记的... 查看详情

java8新特性之一:lambda表达式

...具类、JVM等),其中最重要的升级是它给我们带来了Lambda表达式和StreamAPI。1、什么是Lambda表达式?  Lambda是一个匿名函数,可以理解为是一段可以传递的代码,可以将代码像传递参数、传递数据一样进行传输。使用Lambda表达... 查看详情

java8之lambda表达式看这一篇就够了

 java8增加了许多新特性,其中lambda表达式可以说为最重要的特性之一,本文将从如下几个方面来学习lambda:  1、lambda表达式的基本定义  2、lambda表达式的语法  3、lambda表达式基本示例 一、何为lambda表达式... 查看详情

java8特性详解lambda表达式stream(代码片段)

1.lambda表达式Java8最值得学习的特性就是Lambda表达式和StreamAPI,如果有python或者javascript的语言基础,对理解Lambda表达式有很大帮助,因为Java正在将自己变的更高(Sha)级(Gua),更人性化。--------可以这么说lambda表达式其实就是... 查看详情

java8中的lambda表达式

Lambda表达式是Java8最受欢迎的功能。人们将函数式编程的概念引入了Java这门完全面向对象的命令式编程语言。关于函数式编程是如何运作的,这个话题超出了本文的范围,不过我们会提炼出它一个明显有别于我们所经常使用的OOP... 查看详情