Android_Kotlin_Lambda编程

 集合的创建与遍历

list集合

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")    //不可变集合

listOf

fun main() {
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape")
for (fruit in list) {
println(fruit)
www.blogss.cn }
}

 mutableListOf

fun main() {
val list = mutableListOf("Apple", "Banana", "Orange", "Pear", "Grape")    //可变集合
list.add("Watermelon")
for (fruit in list) {
println(fruit)
}
}

set集合

Set 集合中是不可以存放重复元素的,如果存放了多个相同的元素,只会保留其中一 份
setOf(可变) mutableSetOf(不可变)
val set = setOf("Apple", "Banana", "Orange", "Pear", "Grape")
for (fruit in set) {
println(fruit)
}

map集合(键值对)

val map = HashMap<String, Int>()
map.put("Apple", 1)
map.put("Banana", 2)
map.put("Orange", 3)
map.put("Pear", 4)
map.put("Grape", 5)
map["Apple"] = 1    //添加键值对
val number = map["Apple"]     //读取键值对
val map = HashMap<String, Int>()
map["Apple"] = 1
map["Banana"] = 2
map["Orange"] = 3
map["Pear"] = 4
map["Grape"] = 5

 mapof()(不可变)

val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5)
fun main() {
val map = mapOf("Apple" to 1, "Banana" to 2, "Orange" to 3, "Pear" to 4, "Grape" to 5)
for ((fruit, number) in map) {
println("fruit is " + fruit + ", number is " + number)
}
}

集合的函数式API

找到单词最长的水果

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
var maxLengthFruit = ""
for (fruit in list) {
if (fruit.length > maxLengthFruit.length) {
maxLengthFruit = fruit
}
}
println("max length fruit is " + maxLengthFruit)
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val maxLengthFruit = list.maxBy { it.length }   //it表示list集合里面每个单词的长度
println("max length fruit is " + maxLengthFruit)

lambda表达式语法结构

{参数名1: 参数类型, 参数名2: 参数类型 -> 函数体} 

val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val lambda = { fruit: String -> fruit.length }
val maxLengthFruit = list.maxBy(lambda)   //maxBy 函数实质上就是接收了一个 Lambda 参数而

将单词都变成大写形式

fun main() {
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val newList = list.map { it.toUpperCase() }
for (fruit in newList) {
println(fruit)
}
}

filter函数

对单词长度进行过滤,只保留5个字母以下的单词

fun main() {
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val newList = list.filter { it.length <= 5 }
.map { it.toUpperCase() }
for (fruit in newList) {
println(fruit)
}
}

anyall函数

any 函数用于判断集合中是否至少存在一个元素满足指定条件,
all 函数用于判断集合中是否所有元素都满足指定条件
返回true或者false
fun main() {
val list = listOf("Apple", "Banana", "Orange", "Pear", "Grape", "Watermelon")
val anyResult = list.any { it.length <= 5 }
val allResult = list.all { it.length <= 5 }
println("anyResult is " + anyResult + ", allResult is " + allResult)
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值