数组介绍
有过编程经验的对数组应该不陌生,诸多的编程语言都有数组这个概念。数组就是有序可重复定长的容器。 感觉很拗口,我们一个个分析。
首先数组是个容器,容器就是一个对象可以存储多条数据;有序,存储元素有先后顺序,先存储的顺序靠前;可重复,数组可以存储重复的数据;定长,数组长度创建就已经固定。通过数组对象可以存储多条数据,提高开发效率。
举个例子,以前使用猎枪打仗一次填装一颗子弹,现在有了冲锋枪,一个弹夹可以存储多颗子弹,数组就相当于这个弹夹。在Kotlin中数组使用的类型是Array,完整定义如下:
数组创建
arrayOf方法创建数组
我们可以通过arrayOf方法创建数组,也可以通过Array类的构造方法创建。
我们翻看源码, arrayOf方法的定义如下:
不过,想要完全看懂该方法,还需要后续章节的泛型、泛型实化类型、内联函数的知识,现在我们只需要掌握使用即可。使用arrayOf方法创建数组如下,参考代码:
针对以上代码我们看到了arrayOf方法创建数组是很方便的,只需要把数组元素扔进去就好了,不用考虑类型,编译器会自动帮我们推断类型。
第14行我们把Int类型的元素和String类型的元素一同扔进了集合,不是说,集合中防止的是同一类型的元素吗?这里Int类型和String类型不相同呀,为什么可以存在同一个集合呢?其实,这个时候编译器把放进去的String类型的元素和Int类型的元素,都当做了Any类型的元素。
我们在进行日志输出的时候,使用了数组的size属性。
Array类的构造方法创建数组
我们翻看源码,Array类的构造方法定义如下:
不过,想要看懂该方法,还需要后面章节的lambda表达式的知识,现在我们只需要掌握使用即可。而且,通过Array类的构造方法创建数组的情况还比较少,主要创建一些有规律性的元素。
比如,想创建一个集合长度为5,集合元素包含[0,2,4,6,8,10]或者[0,3,6,9,12,15]这样规律性的元素的时候,用Array类的构造方法就显得方便一些。
通过arrayOf创建数组,
数组遍历
前面我们学习了区间的遍历,那如何遍历集合中呢?Array的遍历和区间的遍历差不多,就少了step遍历的方式。
也就是Array在遍历的时候,可以普通的for循环,还可以for循环的时候调用数组的withIndex方法,还可以for循环的时候调用数组的indices属性,参考代码:
运行结果:
当然,还可以通过高阶函数进行遍历操作,这个我们后续再去讲解。
网友评论