和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")
  1. val num = IntArray(3)
  2. val num2 = FloatArray(3)

定义

数组用类 Array 实现,并且还有一个 size 属性及 get 和 set 方法,由于使用 [] 重载了 get 和 set 方法,所以我们可以通过下标很方便的获取或者设置数组对应位置的值。

方式一:

  1. fun main(args: Array<String>) {
  2. //[1,2,3]
  3. val a = arrayOf(1, 2, 3)
  4. int num = a[0]
  5. }

方式二:

  1. List(1){"大明"}

创建空数组:

  1. arrayOfNulls<Int>(5)

打印数组

  1. val list = arrayOf("一","二","三","四")
  2. println(list.joinToString())

输出:一,二,三,四

  1. println(list.joinToString("|"))

输出:一|二|三|四

统计

  1. val list = arrayOf("一","二","三","四","一")
  2. val count = list.count { it == "一" }
  3. println(count

输出:2

遍历

  1. String[] array = {"1", "2", "3"};
  2. for (int i = 0; i < array.length; i++) {
  3. System.out.println(array[i]);
  4. }

等价Kotlin:

  1. val array = arrayListOf("1", "2", "3")
  2. for (i in array.indices) {
  3. println(array[i])
  4. }
  1. array.forEach {
  2. println(it)
  3. }

二维数组

  1. var size = Size(6,6)
  2. var matrix:Array<IntArray> = Array(size.row) { IntArray(size.columns) {0}}

上叙为创建一个6X6,且元素均为0的二维数组

随机取一个元素

  1. val choice = arrayOf(1, 2, 3)
  2. choice[Random().nextInt(3)]//随机取0-3,且不包含3的整数