Kotlin 极简小抄 P9 - 数组(数组的创建、数组元素的访问与修改、数组遍历、数组操作、多维数组、数组与可变参数)

发布于:2025-05-23 ⋅ 阅读:(20) ⋅ 点赞:(0)

Kotlin 概述

  1. Kotlin 由 JetBrains 开发,是一种在 JVM(Java 虚拟机)上运行的静态类型编程语言

  2. Kotlin 旨在提高开发者的编码效率和安全性,同时保持与 Java 的高度互操作性

  3. Kotlin 是 Android 应用开发的首选语言,也可以与 Java 一样用于服务器端开发


一、数组的创建

1、基本类型数组创建
  1. 使用工厂函数创建
val byteArray: ByteArray = byteArrayOf(1, 2, 3)
val shortArray: ShortArray = shortArrayOf(1, 2, 3)
val intArray: IntArray = intArrayOf(1, 2, 3)
val longArray: LongArray = longArrayOf(1L, 2L, 3L)

val floatArray: FloatArray = floatArrayOf(1f, 2f, 3f)
val doubleArray: DoubleArray = doubleArrayOf(1.0, 2.0, 3.0)

val charArray: CharArray = charArrayOf('a', 'b', 'c')

val booleanArray: BooleanArray = booleanArrayOf(true, false, true)
// 使用工厂函数创建空数组

val intArr1 = emptyArray<Int>()
// 创建指定大小的数组(元素初始化为 null)

val intArr2 = arrayOfNulls<Int>(5)
  1. 使用构造函数创建
// 创建大小为 10 的数组,初始化为 0
val intArray1: IntArray = IntArray(10)
// 创建大小为 10 的数组,使用 lambda 表达式初始化
val intArray2: IntArray = IntArray(10) {
    it * 2
}
2、非基本类型数组创建
  1. 使用工厂函数创建
val stringArray: Array<String> = arrayOf("a", "b", "c")
// 使用工厂函数创建空数组

val stringArr1 = emptyArray<String>()
// 创建指定大小的数组(元素初始化为 null)

val stringArr2 = arrayOfNulls<String>(5)
  1. 使用构造函数创建
// 创建大小为 10 的数组,使用 lambda 表达式初始化

val stringArray: Array<String> = Array(10) {
    "Hello, $it"
}

二、数组元素的访问与修改

  1. 使用方括号访问与修改
val intArray: IntArray = intArrayOf(1, 2, 3)

println(intArray[0])

intArray[0] = 10

println(intArray[0])
# 输出结果

1
10
  1. 使用 set 方法访问与修改
val intArray: IntArray = intArrayOf(1, 2, 3)

println(intArray[0])

intArray.set(0, 10)

println(intArray[0])
# 输出结果

1
10

三、数组遍历

  1. 使用 for 循环遍历
val numbers: IntArray = intArrayOf(1, 2, 3)

for (number in numbers) {
    println(number)
}
# 输出结果

1
2
3
  1. 使用索引遍历
val numbers: IntArray = intArrayOf(1, 2, 3)

for (i in numbers.indices) {
    println(numbers[i])
}
# 输出结果

1
2
3
  1. 使用 withIndex 遍历
val numbers: IntArray = intArrayOf(1, 2, 3)

for ((index, value) in numbers.withIndex()) {
    println("$index: $value")
}
# 输出结果

0: 1
1: 2
2: 3
  1. 使用 forEach 遍历
val numbers: IntArray = intArrayOf(1, 2, 3)

numbers.forEach { println(it) }
# 输出结果

1
2
3
  1. 使用 forEachIndexed 遍历
val numbers: IntArray = intArrayOf(1, 2, 3)

numbers.forEachIndexed { index, value ->
    println("$index: $value")
}
# 输出结果

0: 1
1: 2
2: 3

四、数组操作

  1. 数组转换为 List
val numbers = intArrayOf(1, 2, 3, 4, 5)

val list = numbers.toList()

println(list)
# 输出结果

[1, 2, 3, 4, 5]
  1. 数组切片
val numbers = intArrayOf(1, 2, 3, 4, 5)

val slice = numbers.sliceArray(1..3)

println(slice.contentToString())
# 输出结果

[2, 3, 4]
  1. 数组过滤
val numbers = intArrayOf(1, 2, 3, 4, 5)

val evens = numbers.filter { it % 2 == 0 }.toIntArray()

println(evens.contentToString())
# 输出结果

[2, 4]
  1. 数组映射
val numbers = intArrayOf(1, 2, 3, 4, 5)

val squares = numbers.map { it * it }.toIntArray()

println(squares.contentToString())
# 输出结果

[1, 4, 9, 16, 25]
  1. 数组排序
val numbers = intArrayOf(3, 4, 5, 1, 2)

// 升序
val sorted = numbers.sortedArray()

println(sorted.contentToString())

// 降序
val sortedDesc = numbers.sortedArrayDescending()

println(sortedDesc.contentToString())
# 输出结果

[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
  1. 数组查找
val numbers = intArrayOf(1, 2, 3, 4, 5)

val firstEven = numbers.find { it % 2 == 0 }

println(firstEven)

val anyGreaterThan10 = numbers.any { it > 10 }

println(anyGreaterThan10)
# 输出结果

2
false

五、多维数组

  1. 创建二维数组
// 3 * 3 的二维数组,初始化为 0
val matrix = Array(3) { IntArray(3) }
  1. 初始化二维数组
val matrix = arrayOf(
    intArrayOf(1, 2, 3),
    intArrayOf(4, 5, 6),
    intArrayOf(7, 8, 9)
)

println(matrix[1][0])
println(matrix[1][1])
println(matrix[1][2])
# 输出结果

4
5
6

六、数组与可变参数

  • 使用 vararg 关键字表示可变参数,本质上就是数组
fun printAll(vararg messages: String) {
    for (m in messages) println(m)
}
printAll("Hello", "World", "Kotlin")

val array = arrayOf("a", "b", "c")
printAll(*array)
# 输出结果

Hello
World
Kotlin
a
b
c

网站公告

今日签到

点亮在社区的每一天
去签到