kotlin精讲-第5章(6)数组变化
2017-12-06 本文已影响144人
739c8d412b4c
追加复制集合:plusElement
一个数组的长度是固定的,我们没法会其添加元素,但是,kotlin提供了一个方法plusElement,可以对原集合添加元素之后,变成一个新的集合,这样的操作在java里面是没有的,参考代码:
![](https://img.haomeiwen.com/i7368752/2859074a3d29a5f3.png)
查看plusElement的源码发现它也是复制了一个集合
![](https://img.haomeiwen.com/i7368752/de620ddd9ab193f5.png)
删除复制集合:plusElement
一个数组的长度是固定的,我们没法删除其元素,但是,kotlin提供了2个方法drop和dropLast。drop方法接收一个Int类型参数,表示可以指定从数组开始位置移除原数组的几个元素。dropLast,方法接收一个Int类型参数,表示可以指定从数组末尾位置移除原数组的几个元素。这样的操作在java里面是没有的,参考代码:
![](https://img.haomeiwen.com/i7368752/0795abd36c53fceb.png)
针对以上代码同样drop和dropLast内部肯定也是通过复制集合实现的,这里就不贴源码了。
分割:slice方法
slice英语单词是“切分”的意思,sliceArray ()方法位表示可以对原数组进行切分,返回一个新的数组。参数接收一个区间,sliceArray方法源码如下:
publicfun <T> Array<T>.sliceArray(indices: IntRange): Array<T> {
if (indices.isEmpty()) return *copyOfRange*(0, 0)
return *copyOfRange*(indices.start, indices.endInclusive + 1)
}
我们编写一个案例看一下,参考代码:
![](https://img.haomeiwen.com/i7368752/1c5a68bb0d4a74bf.png)