
学习视频 视频老师的博客
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 = arrayOfNulls1.3 动态创建数组(不常用)(4) //类型? 表示这个对象是可空的 arrayOfNulls[0] = "element0" //数据填充 arrayOfNulls[1] = "element1" arrayOfNulls[2] = null arrayOfNulls[3] = "element3"
利用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] = 01.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 = listOf2.2map字典创建(1, 2, 3)
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 = mapOf2.3 Set集合创建(Pair(1, "2")) val arrayMap4 = mapOf () //空字典且不可添加元素
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 = setOf2.4 集合的操作 同样适用与map,set,list(1, 3, 2)
val arrayExamples = mutableListOf2.5变换操作("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}")
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()