栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

什么时候要用到Lambda写法(匿名内部类简洁写法,含有创建线程,遍历集合,遍历数组)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么时候要用到Lambda写法(匿名内部类简洁写法,含有创建线程,遍历集合,遍历数组)

答:因为接口不能创建对象,当你new一个接口时,且接口只有一个抽象方法,你可以采用匿名内部类的普通写法,也可以使用lambda写法简写匿名内部类,也就是采用匿名内部类方式创建接口里的抽象方法的匿名(只用一次,没有变量存储)实现类对象;

参考匿名内部类的普通写法和Lambda写法区别 参考创建线程

说明:红色的是可以省略的,蓝色时省略省略下来的,并且如果蓝色区域内的传参括号内参数只有一个,直接写参数变量即可

参考集合遍历和数组遍历

说明:里面有些方法需要建立在jdk8版本的基础上

package com.jt.project;

import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.function.Consumer;

public class LambdaTests {
    public static void main(String[] args) {

        
        List list = Arrays.asList("A", "B", "C");
        
        
        System.out.print("匿名内部类基本写法");
        list.forEach(new Consumer() {
            @Override
            public void accept(String s) {
                System.out.print(s);
            }
        });
        System.out.println("----------------");
        
        System.out.print("匿名内部类简洁写法");
        list.forEach((s)-> {
                System.out.print(s);
            });
        System.out.println("----------------");
        
        System.out.print("匿名内部类超简洁写法");
        list.forEach(
            System.out::print
        );
        System.out.println("----------------");


        
        String strArray[]={"abc","ab","a"};
        
        Arrays.asList(strArray).forEach(new Consumer() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        
        Arrays.asList(strArray).forEach((s)-> {
                System.out.println(s);
        });
        
        Arrays.asList(strArray).forEach(System.out::println);

        
        
        Arrays.sort(strArray, new Comparator() {
                    @Override
                    public int compare(String o1, String o2) {
                        return o1.length() - o2.length();
                    }
                });
        Arrays.asList(strArray).forEach(System.out::println);

        
        Arrays.sort(strArray, (o1, o2) -> {
                    return o1.length() - o2.length();
                });

        Arrays.asList(strArray)
                .forEach(System.out::println);

        
        Arrays.sort(strArray);

        Arrays.asList(strArray)
                .forEach(System.out::println);
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775234.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号