Kotlin函数式API

embedded/2025/2/2 6:34:52/

 Kotlin函数式API

1.maxBy

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

2.map

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

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

3.filter(过滤)

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类型

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() {@Overridepublic void run() {System.out.println("The thread is running.");}
}).start();/*注:这里使用匿名类的写法,
传递给Thread构造方法的便是一个Runnable接口的匿名类实例,
最后调用start方法启动线程;
匿名类是一种一次性使用,没有显示名称的局部类,
通常用于实现接口和继承类*/
//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()


http://www.ppmy.cn/embedded/158837.html

相关文章

Electricity Market Optimization 探索系列(一)

​ 本文参考链接&#xff1a;Linear Programming Mini Example 先从一个线性规划的例子说起&#xff1a; 问题背景&#xff1a; 现在需要使用两台发电机满足用户的用电需求&#xff0c;发电机一的发电功率上限是 6MW&#xff0c;发电机二的发电功率上限是 4MW&#xff0c;发电…

网安加·百家讲坛 | 樊山:数据安全之威胁建模

作者简介&#xff1a;樊山&#xff0c;锦联世纪教育能源工业互联网数字安全CSM(新能源运维师)课程特聘培训讲师&#xff0c;哈尔滨工业大学&#xff08;深圳&#xff09;信飞合创数据合规联合实验室特聘专家&#xff0c;武汉赛博网络安全人才研究中心资深专家&#xff1b;近24年…

每日一道算法题

题目&#xff1a;单词接龙 II 给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典 wordList&#xff0c;找出所有从 beginWord 到 endWord 的最短转换序列。转换需遵循如下规则&#xff1a; 每次转换只能改变一个字母。转换过程中的中间单词必须是字典中的…

mysql中in和exists的区别?

大家好&#xff0c;我是锋哥。今天分享关于【mysql中in和exists的区别&#xff1f;】面试题。希望对大家有帮助&#xff1b; mysql中in和exists的区别&#xff1f; 在 MySQL 中&#xff0c;IN 和 EXISTS 都是用于子查询的操作符&#xff0c;但它们在执行原理和适用场景上有所不…

后端token校验流程

获取用户信息 前端中只有 await userStore.getInfo() 表示从后端获取数据 在页面中找到info对应的url地址&#xff0c;在IDEA中查找 这里是getInfo函数的声明&#xff0c;我们要找到这个函数的使用&#xff0c;所以点getInfo() Override public JSONObject getInfo() {JSO…

Qt调用FFmpeg库实时播放UDP组播视频流

基于以下参考链接&#xff0c;通过改进实现实时播放UDP组播视频流 https://blog.csdn.net/u012532263/article/details/102736700 源码在windows&#xff08;qt-opensource-windows-x86-5.12.9.exe&#xff09;、ubuntu20.04.6(x64)(qt-opensource-linux-x64-5.12.12.run)、以…

mybatis(78/134)

前天学了很多&#xff0c;关于java的反射机制&#xff0c;其实跳过了new对象&#xff0c;然后底层生成了字节码&#xff0c;创建了对应的编码。手搓了一遍源码&#xff0c;还是比较复杂的。 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE …

python爬虫入门(一) - requests库与re库,一个简单的爬虫程序

目录 web请求与requests库 1. web请求 1.1 客户端渲染与服务端渲染 1.2 抓包 1.3 HTTP状态代码 2. requests库 2.1 requests模块的下载 2.2 发送请求头与请求参数 2.3 GET请求与POST请求 GET请求的例子&#xff1a; POST请求的例子&#xff1a; 3. 案例&#xff1a;…