Kotlin 中List集合,Set集合,Map集合,数组的详解
Posted 路宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 中List集合,Set集合,Map集合,数组的详解相关的知识,希望对你有一定的参考价值。
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。
👉点击跳转到教程
1、创建不可变List集合
fun main()
val list = listOf("Jason", "Jack", "Jacky")
println(list[2])
//getOrElse是一个安全索引取值函数,它需要两个参数
//第一个是索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来代替异常
println(list.getOrElse(3) "UnKnown" )
//getOrNull是kotlin提供的另一个安全索引取值函数,它返回null结果,而不是抛异常
println(list.getOrNull(3) ?: "UnKnown")
输出结果
Jacky
UnKnown
UnKnown
2、创建可变的List集合
fun main()
//可变的list集合
val list = mutableListOf("Jason", "Jack", "Jacky")
list.add("Jimmy")
list.remove("Jack")
println(list)
//mutator函数:能修改可变列表的函数有个统一的名字(mutator函数)
//运算符重载:普通的符号,通过运算符重载技术,让其具备特定的功能
list += "android"
println(list)
list -= "Jason"
println(list)
//包含Jack的字符,就把包含Jack字符的元素删除掉
list.removeIf
it.contains("Jack")
println(list)
list.remove("Jack")
println(list)
//不可变list集合,转为可变list集合
var toMutableList = listOf("Jason", "Jack", "Jacky").toMutableList()
toMutableList.add("1")
println(toMutableList)
//可变list集合,转为不可变list集合
val toList = mutableListOf("Jason", "Jack", "Jacky").toList()
println(toList)
val listOf = listOf(1, 2, 15, 90)
println(listOf)
输出结果
[Jason, Jacky, Jimmy]
[Jason, Jacky, Jimmy, Android]
[Jacky, Jimmy, Android]
[Jimmy, Android]
[Jimmy, Android]
[Jason, Jack, Jacky, 1]
[Jason, Jack, Jacky]
[1, 2, 15, 90]
3、创建不可变Set集合和可变Set集合,以及List集合和Set集合之间的转换函数:distinct
fun main()
// var set = setOf("Jason", "Jack", "Jacky", "Jack")
//使用elementAt函数读取集合中的元素
// println(set.elementAt(0))
// println(set.elementAt(1))
// println(set.elementAt(2))
val mutableSetOf = mutableSetOf("Jason", "Jack1", "Jacky", "Jack")
// mutableSetOf += "Jimmy"
// mutableSetOf -= "Jack"
// for (i in mutableSetOf)
// println(i)
//
// mutableSetOf.forEach
// print("$it ")
//
for (i in mutableSetOf.indices)
print(mutableSetOf.elementAt(i) + " ")
println()
println("****************************")
val set = setOf<String>("Jason", "test", "hello", ".net")
for (index in set.indices)
print(set.elementAt(index) + " ")
// for (i in set)
// println(i)
//
// set.forEach
// println(it)
//
// println(mutableSetOf.elementAt(2))
println()
//集合转换
//把List集合转换成Set,去掉重复元素
val list = listOf("Jason", "Jack", "Jacky", "Jack")
.toSet()
.toList()
println(list)
//distinct;List集合转Set集合,去重的一个快捷函数
println(listOf("Jason", "Jack", "Jacky", "Jack").distinct())
输出结果
Jason Jack1 Jacky Jack
****************************
Jason test hello .net
[Jason, Jack, Jacky]
[Jason, Jack, Jacky]
4、数组类型
代码如下:
fun main()
val intArray = intArrayOf(10, 30, 20)
//得到的int类型的数组
var toIntArray = listOf(10, 30, 40).toIntArray()
println(toIntArray[0])
var arrayOf = arrayOf(File("xxx"), File("yyy"))
println(arrayOf[0])
输出结果
10
xxx
5、创建不可变Map集合
fun main()
//to 是省略了点号和参数的特殊参数,to函数将它左边和右边的值转化为一对Pair
var map = mapOf("jack" to 20, "hello" to 15, "test" to 10)
// mapOf(Pair("jimmy", 20))
println(map["jack"]) //[]取值运算符,读取键对应的值,如果键不存在就返回null
println(map["hh"]) //null
println(map.getValue("hello")) //读取键对应的值,如果键不存在就抛出异常
println(map.getOrElse("test1") "Unknown" ) //读取键对应的值,或者使用匿名函数返回默认值
println(map.getOrDefault("rose", 0))//读取键对应的值,或者返回默认值
/**
* forEach遍历Map
*/
map.forEach
println("$it.key,$it.value")
map.forEach (key: String, value: Int) ->
println("$key,$value")
输出结果如下:
20
null
15
Unknown
0
jack,20
hello,15
test,10
jack,20
hello,15
test,10
6、创建可变Map集合
fun main()
var mutableMapOf = mutableMapOf("jack" to 20, "hello" to 15, "test" to 10)
mutableMapOf += "Jimmy" to 30
mutableMapOf.put("Jimmy", 100)
mutableMapOf.getOrPut("Rose") 18
println(mutableMapOf)
输出结果如下:
jack=20, hello=15, test=10, Jimmy=100, Rose=18
以上是关于Kotlin 中List集合,Set集合,Map集合,数组的详解的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )
Kotlin集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )