栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

三、kotlin数据容器

Java 更新时间:发布时间: 百科书网 趣学号

学习视频 视频老师的博客

1.数组 1.1 arrayOf() 数组

初始化是必须指定数组的元素 不定长,可以是任意类型

val arrayInt = arrayOf(1, 2, 3, 4)
//kotlin的Any等价于java中的Object
val array = arrayOf(1, true, "2")  // 集合中的元素可以是任意类型
1.2 arrayOfNulls()

必指定元素类型、指定数组长度

val arrayOfNulls = arrayOfNulls(4) //类型? 表示这个对象是可空的
arrayOfNulls[0] = "element0"  //数据填充
arrayOfNulls[1] = "element1"
arrayOfNulls[2] = null
arrayOfNulls[3] = "element3"
1.3 动态创建数组(不常用)

利用Array的构造函数动态的创建

//数组创建的时候,会循环5次,i就是数组的下标
// ->右边的表达式的结果,就是数组中当前下标的元素
val asc = Array(5){i -> (i*i).toString()} //{"0","1","4","9","16"}
//asc.forEach { print(it+"  ") }
1.4字节数组
val byteA = ByteArray(5)
byteA[0] = 0
1.5使用IntArray创建整型数组
val intA1 = IntArray(5) //长度为5的空IntArray
intA1[0] = 2
val intA2 = IntArray(5){100} //长度为5每个元素都是100 {100,100,100,100,100}
val intA3 = IntArray(5){it*2} //{0,2,4,6,8} it是数组的下标  {i -> i * 2} 等价 {it*2}
1.6数组循环遍历
//依次取出数组中的元素——for-in的形式
for(item in intA3){
    print("$item ")
}
println()
//根据下标再取出对应的元素 for-in
for(i in intA3.indices){
    print(i.toString()+"->"+ intA3[i]+" ")
}
println()
//带索引和元素 for-in
for((index,item) in intA3.withIndex()){
    print("$index->$item ")
}
println("n")
//forEach会依次回调给我们数组中的元素
intA3.forEach {
    print("$it ") //此时it是数组元素
}
println()
//forEach增强版 ,依次回调下标和元素
intA3.forEachIndexed{index, item ->
    print("$index:$item ")
}
2.集合 2.1列表的创建方式

2.1.1 mutableList<>() 可变列表

val arrayString = mutableListOf()
arrayString.add("1")  //直接添加元素
arrayString.add("2")
arrayString.add(2,"3") //指定下标添加元素

val arrayString2 = mutableListOf("1","2","3","4") //初始化添加元素
arrayString2.add("5")

2.1.2 listOf<>() 不可变列表 必须指定元素类型,必须初始化数据元素

val arrayList = listOf(1, 2, 3)
2.2map字典创建

2.2.1 mutableMapOf<>() 可变字典

val arrayMap = mutableMapOf()
arrayMap["1"] = 1
arrayMap["2"] = 2
arrayMap["3"] = 1
arrayMap["4"] = 1 //此时,会覆盖上面的value

//使用Pair指定集合中初始化的元素
val arrayMap2 = mutableMapOf(Pair("1",6))

2.2.2 mapOf<>() 不可变字典 不可动态添加删除元素

val arrayMap3 = mapOf(Pair(1, "2"))
val arrayMap4 = mapOf() //空字典且不可添加元素
2.3 Set集合创建

2.3.1 mutableSetOf<>() 可变集合元素,唯一

val set = mutableSetOf()
set.add(1)
set.add(2)
set.add(2) //无法添加
for(item in set){
    print("$item ")
}
println()

val set2 = mutableSetOf(1,2,3,4)
set.add(1) //无法添加
set.add(2) //无法添加

2.3.2 setOf<>() 不可变

val set3 = setOf(1, 3, 2)
2.4 集合的操作 同样适用与map,set,list
val arrayExamples = mutableListOf("1", "2", "3","4","5","3","7")
println("isEmpty ${arrayExamples.isEmpty()}")
println("contains ${arrayExamples.contains("7")}") //Boolean
println("get ${arrayExamples[1]}")
println("indexOf ${arrayExamples.indexOf("3")}") //元素出现第一次对应的下标
println("indexOf ${arrayExamples.lastIndexOf("3")}") //元素出现(右到左)第一次对应的下标

arrayExamples[0] = "0" //修改下标对应的元素
arrayExamples.add(1,"7") //指定位置插入元素
arrayExamples.removeAt(0)
//迭代器
val iterator = arrayExamples.iterator()
iterator.forEach { it->
    print("$it ")
}
println()
arrayExamples.clear() //清除集合
println("isEmpty ${arrayExamples.isEmpty()}")
println("size ${arrayExamples.size}")
2.5变换操作
val numbers = mutableListOf(1, 2, 3, 4)
numbers.reverse()
print("reverse:")
numbers.forEach { it->
    print("$it ")
}
println()

numbers.shuffle() //随机排列元素 不常用
print("shuffle:")
numbers.forEach { it->
    print("$it ")
}
println()

numbers.sort() //小到大排序 常用
print("sort:")
numbers.forEach { it->
    print("$it ")
}
println()

numbers.sortDescending() //大到排序 常用
print("sortDescending:")
numbers.forEach { it->
    print("$it ")
}
println()
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/275329.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号