我发现我在平时的使用中,连数组,集合很多我都非常懵逼,明明在 java
或 javascript
中都是很容易的。
如果在 java
中,那么声明一个数组非常简单:
int[] a = new int[10];
a[0] = 10;
System.out.println(Arrays.toString(a));
// [10, 0, 0, 0, 0, 0, 0, 0, 0, 0]
即便使用封装类也是比较容易的:
Integer[] arr = new Integer[10];
arr[0] = 10;
System.out.println(Arrays.toString(arr));
// [10, null, null, null, null, null, null, null, null, null]
在 kotlin
中就不能这样写了,会出现下面的错误。
像下面就可以了:
val arr: IntArray = IntArray(10)
arr[0] = 10
arr.forEach { print("$it ") }
// 10 0 0 0 0 0 0 0 0 0
比如我在做 leetCode
上面题的时候,很多时候都是要使用集合,而且是空集合,也就是事先里面并没有值的情况,这个时候我发现并不好弄。
val arr = emptyList<Int>().toMutableList()
arr.add(10)
arr.forEach { print("$it ") }
发现很鸡肋,所以我猜肯定是我使用的不对。如果去掉后面的 toMutableList
就会出现错误,因为里面并没有提供 add
方法。
结果我在官网上看到了这个:
集合的关系图
而跟操作相关的都在最下面的那一层,所以如果我要使用只能使用它:
需要指定参数
init
和 size
,如果我不想指定怎么办,只能像下面这样:
val arr = mutableListOf<Int>()
arr.add(10)
arr.forEach { print("$it ") }
这就是我想要的了,当时就是为了这个很难受,虽然我知道官网上有,但由于但是在思考怎么写算法,结果因为这个而弄得很难受,所以就想着今天补一下。关于其他的操作改天等用到了再补上,这样影响深刻。
网友评论