Kotlin数据容器 - 数组

这篇博客主要介绍了Kotlin中的数组,包括如何创建数组(如使用arrayOf、原生数组类型),数组的常见操作,如循环遍历和其它操作,如复制、翻转等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近开始从Java学习Kotlin,自己做一些笔记,欢迎补充和纠正。

Kotlin数组

数组是一种初始化时指定容器大小,不可以动态调整其大小的容器。

1. 创建Kotlin数组

  • 使用arrayOf创建数组
  • 用原生数组类型创建数组
  • 创建空数组
  • 创建数组时初始化内容
// 1. 初始化普通数组
val arrayNumber: Array<Int> = arrayOf(1,2,3,4,5)

// 往array中放任意类型
val arrayAny: Array<Any> = arrayOf(1, true, "2")

// 2. 创建空数组, 指定数据类型是需要在末尾加上?,表示可以运行Null数据
val arrayOfNUlls: Array<String?> = arrayOfNUlls<String>(5) // 指定数组大小为5

arrayOfNulls[0] = "1"
arrayOfNulls[1] = null


// 3. 动态创建数组, 利用array的构造函数,而不是arrayOf
// 创建一个Array<String> 初始化为[0,2,4,6,8]
val arr: Array<String> = Array(5) {i -> (i * 2).toString()}
// 也可以更简洁的写lambda
val arr: Array<String> = Array(5) {(it * 2).toString()}
arr.forEach { println(it) }


//4. 使用原生类型数组创建数组
val byteArr = ByteArray(5)
var charArr = CharArray(5)
// charArr[0] = "a" (报错,类型不对,单引号才是char,双引号是String)
charArr[0] = 'a'
charArr[1] = 'b'
charArr[2] = 'c'
charArr[3] = 'd'
charArr[4] = 'e'
// charArr[5] = 'f' (报错,超出范围)

charArr.forEach{ print(it) }


// 5. 统一初始化数组里的内容
val intArr = IntArray(10) { 100 }  // 数组里所有数字都为100



2. 数组的常见操作

2.1 常见操作列表

操作说明
[ ]用下标访问数组内容
size返回数组大小
get(index) / set(index)获取数组下标内容 / 更改数组下标内容
iterator()遍历数组
equals(Array)比较两个数组是否为同一对象(比较地址)
contentEquals(Array)比较两个数组的内容是否相同

2.2 循环遍历数组

Kotlin对数组的遍历比Java更灵活,下面的代码介绍了几种常用的。

// 1. 对数组进行for 循环遍历
val intArr = IntArray(10) { it + 1} // it为数组的当前下标,从0开始

for (item in intArr) {
    print(item)
    print(" ")
}

// 运行结果: 1 2 3 4 5 6 7 8 9 10 

// 2. 用下标进行遍历
for (i in intArr.indices) {
    print(i.toString() + "->" + intArr[i])
    print(" ")
}

// 运行结果: 0->1 1->2 2->3 3->4 4->5 5->6 6->7 7->8 8->9 9->10 


// 3. 用forEach进行遍历
intArr.forEach {
    print(it)
    print(' ')
}

// 运行结果: 1 2 3 4 5 6 7 8 9 10 

// 4. 用forEachIndexed

intArr.forEachIndexed { index, item ->
    print(index.toString() + "->" + item)
    print(' ')
}

// 运行结果: 0->1 1->2 2->3 3->4 4->5 5->6 6->7 7->8 8->9 9->10 

2.3 其他操作

一些其他的操作,比如复制数组和翻转数组。

// 反转数组
intArr.reverse()

intArr.forEach {
    print("$it ")
}

// 输出结果: 10 9 8 7 6 5 4 3 2 1 

// 复制数组

val intArr2 = intArr.copyOf()

println(intArr.contentEquals(intArr2))

// 输出结果: true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值