在前两节的学习中,相信大家对kotlin的简洁应该有所感触,废话不多说,让我们继续领略kotlin语言的魅力吧。
1)、kotlin基本数据类型的数组
运行结果,如下图:
在上面的编写中我们发现,kotlin在集合的使用中与传统的Java还是有所不同的,传统的java实现了List接口,想要使用集合时,必须要这样编写ArrrayList<Int> list=new ArrayList<Int>(),而kotlin对于基本数据集合的使用划分的更加详细,例如如果是Int类型的集合则需要使用intArrayListOf,字符的则需要使用CharArrayListOf进行存储,让我们进一步看一看kotlin基本数据类型的源码编写,看一看kotlin对于基本数据类型,提供了多少实现:
很幸运和我们猜想到的是一样的,kotlin对每一种基本类型的集合都提供了实现。^_^
那么问题来了,对于基本的数据类型可以使用kotlin提供的基本类型集合,那么对于存储第三方编写的类(Class),或者系统提供的类、以及更复杂的类的时候怎么实现呢?让我们继续向上看kotlin提供的方法:
我们看到了的泛型T,是不是很激动,^_^,不错这个就是我们接下来要使用的,还是先上代码:
运行结果:
在上面代码中我们定义了一个Person类,重写了toString()方法,最终我们看到arrayOf是可以存放类、还有复杂类型。打印结果的方法使用forEach进行打印,这里我没有给出,可以这样使用arrayOfPerson.forEach{ printf(it) }进行打印结果,那么既然父类是一个T类型,那是不是可以认为它也是可以用来存储基本类型,这里我们演示一下:
经过上面的演示我们发现基本数据类型的写法在kotlin中也是支持的,其实arrayOfInt底层也是对arrayOf进行了封装。不过需要注意的是上面的集合是不可变得,也就是该集合只能够在初始化的时候进行赋值,其余之后只能遍历,不能够进行增加,和删除的操作,也就是该集合不可变。如图:
那么如果我想要使用可以动态修改的集合,遍历集合,同时可以添加集合,删除集合怎么才能实现呢?
其实kotlin已经考虑到了这点,MutableList应运而生,如图:
在该类中我们看到了list集合中更加丰富的用法,不仅仅可以遍历查看,同时还可以增加删除等操作。在list定义中参数一 5表示集合初始化的长度,参数2表示初始值,我们发现Kotlin在对集合的操作中还是比较人性化的,相对于传统的java代码,可以让使用者根据具体情况,具体选择自己要使用那种,比如当声明的这个集合仅仅为了查看,那么使用arrayOf就足够了,如果要操作这个集合,那么可以使用MutableList进行操作,更加灵活方便,^_^今天学习就到这里了,明天继续更新。