集合的创建与遍历
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"] = 1map["Banana"] = 2map["Orange"] = 3map["Pear"] = 4map["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)}}
any和all函数
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)}