Kotlin数组(对比Java)

上图是Kotlin和Java的数组类型比较图,这里没有把所有的类型都列出来,数字类型都类似整型。

数组的创建

Java

int[] a = new int[]{1, 2, 3, 4, 5};

Kotlin

val a1 = intArrayOf(1, 2, 3, 4, 5)
val a2 = IntArray(5) { it + 1 }

Kotlin中创建对象是不需要new关键字的,其中第二种创建数组的方法:val a2 = IntArray(5) { it + 1 } 构造函数中传递的是数组的大小,后面的大括号中的内容是lambda表达式的写法,it就是数组的索引。

数组的长度

Java

int[] a = new int[5];
System.out.println("数组的长度:" + a.length);

Kotlin

val a = IntArray(5)
println("数组的长度:${a.size}")
  • Java中数组的长度通过.length获取
  • Kotlin中数组的长度通过.size()获取

数组的读写

Java

String[] s = new String[]{"Hello", "World"};
s[1] = "Java";
System.out.println(s[0] + "," + s[1]);

Kotlin

val s = arrayOf("Hello", "World")
s[1] = "Kotlin"
println("${s[0]},${s[1]}")

Java和Kotlin的数组读写的写法是一样的

遍历数组和数组的包含关系

Java

float[] f = new float[]{1.2f, 1.4f, 1.6f};
//循环遍历数组
for (int i = 0; i < f.length; i++) {
    System.out.println(f[i]);
}
for (float element : f) {
    System.out.println(element);
}
//判读一个元素是否在该数组中
float d = 1.4f;
for (float element : f) {
    if (d == element) {
        System.out.println("变量d在数组f当中");
        break;
    }
}

Kotlin

val f = arrayOf(1.2f, 1.4f, 1.6f)
//循环遍历数组
for (i in f.indices) {
    println(f[i])
}
for (element in f) {
    println(element)
}
f.forEach { element ->
    println(element)
}
//判读一个元素是否在该数组中
val d = 1.4f;
if (d in f) {
    println("变量d在数组f当中")
}

Kotlin中遍历数组是可以通过高阶函数.forEach{}的方式去遍历的,判断某个数组中是否包含某个元素是可以通过关键字 in 或者 !in 去判断的

你可能感兴趣的:(Kotlin数组(对比Java))