Lambda
即指希腊字母λ
的读音,是一种十分简洁的函数表达式,这种规范在很多语言中都有应用,方面大家更简洁地编写代码。
Kotlin里集合分为以下几种:
集合 | 分类 | 解释 |
List | List | 不可变List集合 |
MutableList | 可变List集合 | |
Set | Set | 不可变Set集合 |
MutableSet | 可变Set集合 | |
Map | Map | 不可变Map集合 |
MutableMap | 可变Map集合 |
List
当你想创建一个List
,Kotlin专门提供一个:listof()
函数来初始化集合。如下所示:
val fruit = listOf("苹果", "香蕉", "桃", "葡萄")
还记得for…in
循环吗?在这里遍历List
相当方便。如下所示:
fun main(){
val fruit = listOf("苹果", "香蕉", "桃", "葡萄")
for (eachOne in fruit){
println("我吃了一个 $eachOne 。")
}
}
结果如图:
当然,这个List
是不可变的,下面我们来创建一个可变列表,向里面加入“火龙果”
,再打印出来:
fun main(){
val fruit = mutableListOf("苹果", "香蕉", "桃", "葡萄")
fruit.add("火龙果")
for (eachOne in fruit){
println("我吃了一个 $eachOne 。")
}
}
可以看到,新的“火龙果”
已经打印出来了。
Set
Set
用法与List
一致,只是Set
使用hash映射机制
存放数据,无法保证顺序一致。下面来实现一下:
fun main(){
val fruit = mutableSetOf("苹果", "香蕉", "桃", "葡萄")
fruit.add("火龙果")
for (eachOne in fruit){
println("我吃了一个 $eachOne 。")
}
}
Map
Map
是一种“键值对”
形式的数据结构。我们这里首先使用“数据下标“
形式的创建Map
:
fun main(){
val fruit = HashMap<String, Int>()
fruit["苹果"] = 1
fruit["香蕉"] = 2
fruit["桃"] = 3
fruit["葡萄"] = 4
for ((eachOne,number) in fruit){
println("我吃的第$number 个水果是 $eachOne 。")
}
}
类似的还有一种put()
和get()
的写法,不推荐,仅供阅读:
val fruit = HashMap<String, Int>()
fruit.put("苹果", 1)
println(fruit.get("苹果"))
当然以上不是最简写法,Kotlin仍然提供了mapof()
和mutablesMapof()
供大家使用,这样我们可以直接传入初始化的“键值对”
完成Map
创建。代码如下:
fun main(){
val fruit = mapOf("苹果" to 1, "香蕉" to 2, "橘子" to 3, "桃子" to 4)
for ((eachOne,number) in fruit){
println("我吃的第$number 个水果是 $eachOne 。")
}
}
集合的创建与遍历就学到这里,下一期学习集合的函数形式API
,正式入门Lambda编程
。
欢迎关注小试编程