集合的创建与遍历

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)
}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐