和java比较

Java

  1. int[] array1 = {1, 2, 3};
  2. float[] array2 = {1f, 2f, 3f};
  3. String[] array3 = {"1", "2", "3"};
  1. int[] num = new int[3];

kotlin

  1. val array1 = intArrayOf(1, 2, 3)
  2. val array2 = floatArrayOf(1f, 2f, 3f)
  3. 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的整数