上图是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 去判断的