Kotlin函数式API

Kotlin函数式API

1.maxBy

Kotlin 复制代码
val list = listOf("Apple","Banana", "Orange","pear","Grape","Watermelon")
val maxLengthFruit = list.maxBy {it.length}
println(maxLengthFruit)

2.map

集合中zhi的map函数是最常用的一种函数式API,它用于将集合中的每个元素都映射成另一个值,映射规则在Lambda表达式中指定,最终生产一个新的集合。

Kotlin 复制代码
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val newList = list.map{it.toUpperCase()}
printlin(newList)

3.filter(过滤)

Kotlin 复制代码
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val newList = list.filter {it.length <= 5}.map {it.toUpperCase()}
println(newList)

4.any and all

any用于判断是否存在某个元素满足指定条件,all用于判断是否所有元素均满足指定条件;返回值均为Boolean类型

Kotlin 复制代码
val list = listOf("Apple", "Banana", "Orange", "Grape", "Pear", "Watermelon")
println(list.any{it.length <= 5})
println(list.all{it.length <= 5})

Java函数式API

如果我们想用Kotlin代码调用一个Java方法,且该方法接受一个单抽象方法接口参数(单抽象方法接口是指接口中只有一个待实现方法),便可以使用函数式API

java 复制代码
//Java原生API中最常见的单抽象方法接口------Runnable接口
public interface Runnable {
    void fun();
}
java 复制代码
//Java中Runnbale接口与线程的结合实现
new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("The thread is running.");
    }
}).start();

/*注:这里使用匿名类的写法,
传递给Thread构造方法的便是一个Runnable接口的匿名类实例,
最后调用start方法启动线程;
匿名类是一种一次性使用,没有显示名称的局部类,
通常用于实现接口和继承类*/
Kotlin 复制代码
//Kotlin中Runnbale接口与线程的结合实现
Thread(object : Runnable {
    override fun run() {
        println("The thread is running.")
    }
}).start()

//精简后:
Thread(Runnable {
    println("The thread is running.")
}).start()

//进一步精简:
Thread {
    println("The thread is running.")
}.start()
相关推荐
杨不易呀2 分钟前
Java求职面试:Spring Boot与微服务的幽默探讨
java·spring boot·微服务·面试·求职
PythonicCC6 分钟前
Python中有序序列容器的概念及其与可变性的关系
开发语言·windows·python
GGBondlctrl20 分钟前
【Python】Python好玩的第三方库之二维码生成,操作xlsx文件,以及音频控制器
开发语言·python·第三方库·二维码生成·操作xlsx文件·操作音频文件
佩奇的技术笔记41 分钟前
Java学习手册:SQL 优化技巧
java·sql
建筑转Java-张无忌43 分钟前
在Java中,什么是checked exception(即compile-time exception、编译时异常)?
java·开发语言
动能小子ohhh1 小时前
Python中的客户端和服务端交互的基本内容
开发语言·python
stevenzqzq1 小时前
kotlin 05flow -从 LiveData 迁移到 Kotlin Flow 完整教程
android·开发语言·kotlin·flow
xcLeigh1 小时前
HTML5好看的水果蔬菜在线商城网站源码系列模板9
java·前端·html5·网页源码
HelloRevit1 小时前
DXFViewer进行中 : ->封装OpenGL -> 解析DXF直线
开发语言·c++
Pocker_Spades_A1 小时前
[C语言]第一章-初识
c语言·开发语言·vscode