和java比较
Java
int[] array1 = {1, 2, 3};
float[] array2 = {1f, 2f, 3f};
String[] array3 = {"1", "2", "3"};
int[] num = new int[3];
kotlin
val array1 = intArrayOf(1, 2, 3)
val array2 = floatArrayOf(1f, 2f, 3f)
val array3 = arrayListOf("1", "2", "3")
val num = IntArray(3)
val num2 = FloatArray(3)
定义
数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法,由于使用 [] 重载了 get 和 set 方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值。
方式一:
fun main(args: Array<String>) {
//[1,2,3]
val a = arrayOf(1, 2, 3)
int num = a[0]
}
方式二:
List(1){"大明"}
创建空数组:
arrayOfNulls<Int>(5)
打印数组
val list = arrayOf("一","二","三","四")
println(list.joinToString())
输出:一,二,三,四
println(list.joinToString("|"))
输出:一|二|三|四
统计
val list = arrayOf("一","二","三","四","一")
val count = list.count { it == "一" }
println(count)
输出:2
遍历
String[] array = {"1", "2", "3"};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
等价Kotlin:
val array = arrayListOf("1", "2", "3")
for (i in array.indices) {
println(array[i])
}
array.forEach {
println(it)
}
二维数组
var size = Size(6,6)
var matrix:Array<IntArray> = Array(size.row) { IntArray(size.columns) {0}}
上叙为创建一个6X6,且元素均为0的二维数组
随机取一个元素
val choice = arrayOf(1, 2, 3)
choice[Random().nextInt(3)]//随机取0-3,且不包含3的整数