函数式接口、匿名内部类、lambda表达式

一、函数式接口

只有一个抽象方法的接口叫函数式接口,不能有两个,也不能有方法实现。

@FunctionalInterface注解标记,在idea中可以用这个注解验证是不是函数式接口。实现函数式接口可以转成lambda表达式。

二、匿名内部类

匿名内部类的格式:父类/接口 对象 = new 父类/接口(){ 重写父类/接口中的方法 };

Thread t=new Thread(new Runnable() {
           @Override
           public void run() {
               System.out.println("线程t");
           }
       });

继承了java.lang下的Thread,重写了Thread方法。
三、lambda表达式

简化代码,常用的lambda表达式简写方式

1.代替实现函数式接口(idea可以自动转换)

Thread t=new Thread(new Runnable() {
           @Override
           public void run() {
               System.out.println("线程t");
           }
       });

lambda表达式:

  Thread t=new Thread(() -> System.out.println("线程t"));

常用的场景还有集合排序

 //集合排序:实现Comparator接口
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1.compareTo(o2);
            }
        });

Collections.sort(list, (o1, o2) -> {return o1-o2;});

集合遍历

for (Integer integer : list) {
            System.out.print(integer);
        }

 list.forEach(s->{
            System.out.print(s+" ");
        });
相关推荐
小李不想输啦1 小时前
什么是微服务、微服务如何实现Eureka,网关是什么,nacos是什么
java·spring boot·微服务·eureka·架构
张铁铁是个小胖子1 小时前
微服务学习
java·学习·微服务
ggs_and_ddu1 小时前
Android--java实现手机亮度控制
android·java·智能手机
敲代码娶不了六花3 小时前
jsp | servlet | spring forEach读取不了对象List
java·spring·servlet·tomcat·list·jsp
Yhame.3 小时前
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
java·开发语言
是小崔啊4 小时前
开源轮子 - EasyExcel02(深入实践)
java·开源·excel
myNameGL5 小时前
linux安装idea
java·ide·intellij-idea
青春男大5 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
HaiFan.5 小时前
SpringBoot 事务
java·数据库·spring boot·sql·mysql
我要学编程(ಥ_ಥ)6 小时前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先