<legend id='pEsRv'><style id='pEsRv'><dir id='pEsRv'><q id='pEsRv'></q></dir></style></legend>

    <tfoot id='pEsRv'></tfoot>
  1. <small id='pEsRv'></small><noframes id='pEsRv'>

  2. <i id='pEsRv'><tr id='pEsRv'><dt id='pEsRv'><q id='pEsRv'><span id='pEsRv'><b id='pEsRv'><form id='pEsRv'><ins id='pEsRv'></ins><ul id='pEsRv'></ul><sub id='pEsRv'></sub></form><legend id='pEsRv'></legend><bdo id='pEsRv'><pre id='pEsRv'><center id='pEsRv'></center></pre></bdo></b><th id='pEsRv'></th></span></q></dt></tr></i><div id='pEsRv'><tfoot id='pEsRv'></tfoot><dl id='pEsRv'><fieldset id='pEsRv'></fieldset></dl></div>
    • <bdo id='pEsRv'></bdo><ul id='pEsRv'></ul>

    1. Java-lambda表达式入门看这一篇就够了

      时间:2023-12-11
        • <legend id='R0pFW'><style id='R0pFW'><dir id='R0pFW'><q id='R0pFW'></q></dir></style></legend>

          <small id='R0pFW'></small><noframes id='R0pFW'>

              <tbody id='R0pFW'></tbody>
              <i id='R0pFW'><tr id='R0pFW'><dt id='R0pFW'><q id='R0pFW'><span id='R0pFW'><b id='R0pFW'><form id='R0pFW'><ins id='R0pFW'></ins><ul id='R0pFW'></ul><sub id='R0pFW'></sub></form><legend id='R0pFW'></legend><bdo id='R0pFW'><pre id='R0pFW'><center id='R0pFW'></center></pre></bdo></b><th id='R0pFW'></th></span></q></dt></tr></i><div id='R0pFW'><tfoot id='R0pFW'></tfoot><dl id='R0pFW'><fieldset id='R0pFW'></fieldset></dl></div>

                <bdo id='R0pFW'></bdo><ul id='R0pFW'></ul>

              • <tfoot id='R0pFW'></tfoot>

                Java-lambda表达式入门看这一篇就够了

                什么是Lambda表达式?

                Lambda表达式是Java 8的新特性,它允许我们以更简洁的方式编写匿名内部类,使代码更易读易写。Lambda表达式本质上就是一个函数,不需要写函数名,可以传递到需要函数式接口的任何地方。Lambda表达式由参数列表、箭头符号和函数体组成,其中箭头符号可以理解为“传递至”的意思,函数体可以是表达式或语句块。

                Lambda表达式的语法

                Lambda表达式的语法如下:

                (parameter1, parameter2, ..., parameterN) -> { 
                    statement1; 
                    statement2; 
                    ...
                    return statementM;
                }
                

                其中parameter1, parameter2, ..., parameterN是传递到Lambda表达式中的参数列表,多个参数之间用逗号隔开,如果没有参数则可以写成()

                ->是Lambda表达式中的箭头符号,用于将参数列表和函数体隔开。

                { statement1; statement2; ... return statementM; }是Lambda表达式的函数体,可以是一个语句块或简单的表达式。

                在Lambda表达式中,参数的类型是可以省略的,Java编译器会根据上下文自动推导出参数类型。如果只有一个参数,则参数列表中的括号也可以省略。

                示例1:

                // 传统的匿名内部类示例
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        System.out.println("Hello World!");
                    }
                }).start();
                
                // Lambda表达式示例
                new Thread(() -> System.out.println("Hello World!")).start();
                

                示例2:

                // 传统的匿名内部类示例
                List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
                Collections.sort(list, new Comparator<Integer>() {
                    @Override
                    public int compare(Integer a, Integer b) {
                        return a.compareTo(b);
                    }
                });
                
                // Lambda表达式示例
                List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
                Collections.sort(list, (a, b) -> a.compareTo(b));
                

                在示例1中,我们可以看到Lambda表达式的语法相比于传统的匿名内部类简单明了,更易读易写。

                在示例2中,我们使用Lambda表达式来对一个list进行排序,同样可以看到Lambda表达式可以大大简化代码量,使程序看起来更加简洁。

                Lambda表达式的使用

                Lambda表达式的主要使用场景是函数式接口,即只有一个抽象方法的接口,Lambda表达式中的函数体就是这个接口的具体实现。

                Java 8为我们提供了很多内置的函数式接口,如PredicateConsumerFunctionSupplier等,我们可以根据实际需求来选择合适的函数式接口。

                示例3:

                // Predicate函数式接口示例
                List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
                List<Integer> evenList = filter(list, n -> n % 2 == 0);
                
                public static List<Integer> filter(List<Integer> list, Predicate<Integer> predicate) {
                    List<Integer> resultList = new ArrayList<>();
                    for (Integer i : list) {
                        if (predicate.test(i)) {
                            resultList.add(i);
                        }
                    }
                    return resultList;
                }
                

                在示例3中,我们使用了Java 8内置的Predicate函数式接口,它表示一个判断条件,并且只有一个test方法,用于判断传入的参数是否符合条件。我们可以通过Lambda表达式来创建一个Predicate对象,然后将它传递给filter函数,获得符合条件的列表。

                总结

                Lambda表达式是Java语言中一个非常有用的特性,它可以使我们的代码更加简洁易读,而且能够与函数式接口紧密结合,为我们提供更加灵活的编程方式。掌握Lambda表达式是每一个Java开发人员的必备技能之一。

                上一篇:详解SpringBoot修改启动端口server.port的四种方式 下一篇:ajax详解_动力节点Java学院整理

                相关文章

                1. <legend id='AFujM'><style id='AFujM'><dir id='AFujM'><q id='AFujM'></q></dir></style></legend>
                2. <i id='AFujM'><tr id='AFujM'><dt id='AFujM'><q id='AFujM'><span id='AFujM'><b id='AFujM'><form id='AFujM'><ins id='AFujM'></ins><ul id='AFujM'></ul><sub id='AFujM'></sub></form><legend id='AFujM'></legend><bdo id='AFujM'><pre id='AFujM'><center id='AFujM'></center></pre></bdo></b><th id='AFujM'></th></span></q></dt></tr></i><div id='AFujM'><tfoot id='AFujM'></tfoot><dl id='AFujM'><fieldset id='AFujM'></fieldset></dl></div>
                  • <bdo id='AFujM'></bdo><ul id='AFujM'></ul>

                3. <tfoot id='AFujM'></tfoot>

                  <small id='AFujM'></small><noframes id='AFujM'>