数组
概述
- Array 类代表着数组
- [] 可以用于访问数组的元素,实际上 [] 被进行了操作符的重载,调用的是 Array 类的 setter 和 getter 方法
创建数组
直接指定长度
val fixedSizeArray = arrayOfNulls<Int>(5)
使用装箱操作
val arr = arrayOf(1, 2, 3)
val intArr = intArrayOf(1, 2, 3) //同理还有 booleanArrayOf() 等
使用闭包进行初始化
val asc = Array(5, { i -> i * i }) //0,1,4,9,16
空数组
val empty = emptyArray<Int>()
java中声明数组,跟在C语言中声j明是一样的,以整型数组为例
int [] intArray = new int []{1,2,3,4}
其它基本类型的数组声明与之类似,只要把int替换为long、float、double、boolean、char即可。但在Kotlin中,声明并赋值一个整型数组的语句
var intArray:IntArray = intArrayOf(1, 2, 3)
Java与Kotlin有以下区别:
- 1、Kotlin另外提供了新的整型数组类型即IntArray;
- 2、分配一个常量数组,Kotlin调用的是intArrayOf方法,并不使用new关键字;
长整型数组:数组类型为LongArray,分配方法为longArrayOf;
浮点数组:数组类型为FloatArray,分配方法为floatArrayOf;
双精度数组:数组类型为DoubleArray,分配方法为doubleArrayOf;
布尔型数组:数组类型为BooleanArray,分配方法为booleanArrayOf;
字符数组:数组类型为CharArray,分配方法为charArrayOf;
var longArray:LongArray = longArrayOf(1, 2, 3,4)
var floatArray:FloatArray = floatArrayOf(1.0f, 2.0f, 3.0f,4.0f)
var doubleArray:DoubleArray = doubleArrayOf(1.0, 2.0, 3.0,4.0)
var booleanArray:BooleanArray = booleanArrayOf(true, false, true,false)
var charArray:CharArray = charArrayOf('a', 'b', 'c','f')
还有一点java是有字符串数组的但是kotlin并不存在StringArray
String[] stringArray = new String[] {"hello", "java"};
如果再kotlin中使用字符串数组得使用Array<String>
var stringArray:Array<String> = arrayOf("hello", "kotlin")
//同理
var intArray:Array<Int> = arrayOf(1, 2, 3)
var longArray:Array<Long> = arrayOf(1, 2, 3)
var floatArray:Array<Float> = arrayOf(1.0f, 2.0f, 3.0f)
var doubleArray:Array<Double> = arrayOf(1.0, 2.0, 3.0)
var booleanArray:Array<Boolean> = arrayOf(true, false, true)
var charArray:Array<Char> = arrayOf('a', 'b', 'c')