1、数组声明:
数组声明格式:
变量声明关键字 数组变量名:数组类型 = 数组类型of(元素1、元素2……)
var intArray:IntArray = intArrayof(1, 2, 3, 4)
kotlin数组与Java数组的区别:
1、kotlin另外提供了新的整型数组类型:IntArray;
2、分配一个常量数组,kotlin调用的是intArrayOf方法,并不使用new关键字。由此推广到其他数据类型的数组,创建数组变量的时候也不会用到new关键字。
比如:
var intArray: IntArray = intArrayOf(1,2,3)
var longArray:LongArray = longArrayOf(1,2,3)
var floatArray:FloatArray = floatArrayOf(1.0f,2.0f,3.0f)
var doubleArray:DoubleArray = doubleArrayOf(1.0,2.0,3.0)
var booleanArray:BooleanArray = booleanArrayOf(true,false,false)
var charArray:CharArray = charArrayOf(‘a’,’1’)
但是上面我们还没有给出String的数组的定义方式,那字符串String数组是怎么定义的呢?我们一起来看看:
var stringArray:Array<String> = arrayOf(“xiao”, ”xiao”)
哈哈,看到这里,是不是感觉很熟悉?写法是不是很像Java的数组创建?其实上面其他几种数据类型的数组都可以这么创建:
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, false)
var charArray: Array<Char> = carrayOf(‘a’, ’1’)
2、数组的简单操作:
在kotlin的数组操作中:
1、获取数组的长度用**.size()方法。而且也不提供像Java那样的length()**方法。
2、关于获取数组指定位置的元素,koltin提供了多种方案:一是像Java那样通过[index]的方式获取,二是通过get(index) 的方式获取,三是通过forEach循环,四是通过Iterator迭代输出,五是for循环(for循环又分5种)。
var strArray:Array<String> = arrayOf("zhong", "晓", "yu")
var name01:String = ""
var name02:String = ""
while (index < strArray.size){
//通过get(index) 的方式获取=============================================================
name01 = name01 + strArray.get(index)
//通过[index]的方式获取=================================================================
name02 = name02 + strArray[index]
index++
}
println(TAG + "---通过get()的方式获取到的老婆的名字name01是:" + name01)
println(TAG + "---通过[index]的方式获取到的老婆的名字name02是:" + name02)
name01 = ""
//通过forEach循环=========================================================================
strArray.forEach {
name01 = name01 + it
}
println(TAG + "---通过forEach循环的方式获取到的老婆的名字name01是:" + name01)
name01 = ""
//通过iterator循环========================================================================
var iterable:Iterator<String> = strArray.iterator();
while (iterable.hasNext()){
name01 = name01 + iterable.next();
}
println(TAG + "---通过iterator循环的方式获取到的老婆的名字name01是:${name01}")
name01 = ""
//===============for循环方式一、===============
for (item in strArray){
name01 = name01 + item;
}
println("for--in循环的结果:${name01}")
name01 = ""
//===============for循环方式二、===============
//注意:这里的size要减1
for (index in 0..strArray.size-1){
name01 = name01 + strArray[index]
}
println("index in 0..strArray.size循环的结果:${name01}")
name01 = ""
//===============for循环方式三、===============
for (index in strArray.indices){
name01 = name01 + strArray[index]
}
println("index in strArray.indices循环的结果:${name01}")
//===============for循环方式四、===============
for ((index, item) in strArray.withIndex()){
println("队列list还可以通过循环下标的方式获取元素:$index 位置的元素是:$item")
}
//===============for循环方式五、===============
strArray.forEach {
name01 = name01 + it
}
println("循环结果如下:$name01")
注意:forEach函数里面无法使用continue或者break。而是用下面的一种或者几种:
本篇博文经过多次补充和完善,因此,运行结果和上图有所出入。