list的创建和元素取值
list不可变,不可以add和remove
//创建list
val list = listOf("zhangsan","lisi","wangwu")
//list取值
list[0]
//安全索引取值函数,第一个参数为索引,第二个参数为lambda表达式,如果存在就返回值,
// 不存在就可以返回lambda表达式的自定义任何语句
//getOrElse 拿到索引进行返回
println(list.getOrElse(3){
"$it out of existence"
})
//getOrNull 如果没有的话会返回null
println(list.getOrNull(3) ?: "不存在")
可变列表
mutableListOf,可以使用add和remove
可变与不可变可以互相转换
listOf("zhangsan","lisi","wangwu").toMutableList()
mutableListOf("zhangsan","lisi","wangwu").toList()
mutator函数
运算符重载(本身是普通的功能,通过重载后有了特定的功能)
+=:可以给mutablelList添加元素,等同于add
-=: 给mutableList 删除元素 ,等同于remove
.removeIf();基于lambda表达式制定条件删除的元素
集合遍历
//for
for (s in list) {}
//forEach
list.forEach {}
//有index
list.forEachIndexed { index, s -> }
解构语法
在给多个对象同时赋值时,如果不想给哪个元素赋值,就用下划线命名
set创建与元素获取
// 创建Set setOf
val set = setOf("zhangsan","lisi","wangwu","lisi")
// set取值 elementAt
set.elementAt(2)
// 安全取值
set.elementAtOrElse(2){
}
set.elementAtOrNull(2)
可变set
val mutableSetOf = mutableSetOf("zhangsan","lisi","wangwu","lisi")
集合的转换
//list转成set去掉重复的元素
//第一种
val list1 = listOf("zhangsan","lisi","wangwu","lisi")
.toSet()
.toList()
//第二种
val list2 = listOf("zhangsan","lisi","wangwu","lisi").distinct()
数组
//数组的创建
byteArrayOf()
shortArrayOf()
val intArray = intArrayOf(10,20,30)
longArrayOf()
floatArrayOf()
doubleArrayOf()
arrayOf(10,20,30)
//集合,数组互相转换
listOf(10,20,30).toIntArray().toList()
Map集合
//map的创建
/* to 是一个省略了点号和参数的特殊函数,to函数
*将它左边和右边的值转化成一对Pair
* */
val map = mapOf("name" to "zhangsan","age" to 12)
mapOf(Pair("name","zhangsan"), Pair("age",18))
//读取map的值
map["name"]
map.getValue("name")
map.getOrElse("name"){
"out of existence"
}
map.getOrDefault("name","无此人")
map的遍历
//map的创建
/* to 是一个省略了点号和参数的特殊函数,to函数
*将它左边和右边的值转化成一对Pair
* */
val map = mapOf("name" to "zhangsan","age" to 12)
mapOf(Pair("name","zhangsan"), Pair("age",18))
//读取map的值
map["name"]
map.getValue("name")
map.getOrElse("name"){
"out of existence"
}
map.getOrDefault("name","无此人")
map.forEach{
it.key
it.value
}
map.forEach { (t, u) ->
t
u
}
可变的map
val mutableMap = mutableMapOf(Pair("name","zhangsan"), Pair("age",18))
mutableMap += "sex" to "男"
mutableMap.put("sex" , "男")
//如果get不到就put进去
mutableMap.getOrPut("sex"){ "男"}
//get如果为null就设置一个默认值
mutableMap.getOrDefault("sex" , "男")
mutableMap.getOrElse("sex" ){"男"}
mutableMap