Kotlin 学习--数组

一、关于数组的基础知识和常用方式

复制代码
    /**
     * kotlin 数组
     * 使用arrayOf创建数组,必须指定数组的元素,可以是任意类型
     * */
    val arrayNumber = arrayOf(1, 2, 3, 4)

    /**
     * 集合中的元素可以是任意类型
     * kotlin 中的Any 等价于 java 中的Object 对象的意思
     * */
    val arrayObjects = arrayOf(1, true, "2")

    /**
     * 使用arrayOfNulls 创建空数组
     * 创建一个指定大小的、所有元素都为空的数组,但必须指定集合中的元素类型
     * "?"表示可以为null
     * */
    val arrayOfNulls = arrayOfNulls<String>(5)
    arrayOfNulls[0] = "Study Kotlin 01"
    arrayOfNulls[1] = "Study Kotlin 02"
    arrayOfNulls[2] = "Study Kotlin 03"
    arrayOfNulls[3] = "Study Kotlin 04"
    arrayOfNulls[4] = null

    /**
     * 利用array 的构造函数,动态创建数组
     * 创建一个Array<String>初始化为["0","1","4","9","16"]
     * i=0,1,2,3,4
     * 数组创建的时候会循环5次,i就是数组的下标
     * ->右边的表达式的结果就是数组总当前下标的元素
     * */
    val asc = Array(5) { i -> (i * i).toString() }

    /**
     * 字节数组
     * */
    val bytes = ByteArray(5)
    bytes[0] = 1

    /**
     * 使用IntArray 创建整形数据数组
     * 创建一个长度为5的空的IntArray
     * */
    val intArray2 = IntArray(5)
    intArray2[0] = 1

    /**
     * 创建一个长度为5 都是100 的数组[100,100,100,100,100]
     * */
    val intArr2 = IntArray(5) { 100 }

    /**
     * 创建一个长度为5  的数组[0,2,4,6,8]
     * it:lambda 表达式专有变量,这里指数组下标
     * */
    var intArr3 = IntArray(5) { it * 2 }//
    //var intArr3 = IntArray(5) { i -> i * 2 }

    /**
     * 数组如何进行for循环遍历
     * 依次取出数组中的元素 --for-in的形式
     * */
    for (item in intArr3) {
        println(item)
    }

    /**
     * 根据数组下标取出对应位置的元素
     * */
    for (i in intArr3.indices) {
        println(i.toString() + "->" + intArr3[i])
    }

    /**
     * 同时遍历下标和元素
     * */
    for ((index, item) in intArr3.withIndex()) {
        println("$index->$item")
    }

    /**
     * foreach
     * */
    intArr3.forEach {
        println("forEach->$it")//it 代表数组的元素
    }

    /**
     * foreach增强版
     * */
    intArr3.forEachIndexed { index, item ->
        println("index->$index  item->$item")
    }
相关推荐
骁的小小站1 小时前
Verilator 和 GTKwave联合仿真
开发语言·c++·经验分享·笔记·学习·fpga开发
颜颜yan_4 小时前
UU远程——让工作、学习、娱乐跨设备无缝衔接,“远程”更像“身边”
学习·娱乐·远程工作
哆啦A梦15886 小时前
点击Top切换数据
前端·javascript·vue.js
YJlio6 小时前
Process Monitor 学习笔记(5.24):工具栏参考与高效快捷键指南
笔记·学习·php
deng-c-f6 小时前
Linux C/C++ 学习日记(30):协程(一):同步和异步、协程的简要介绍、用户态CPU调度的实现
学习·协程·同步/异步
@PHARAOH7 小时前
WHAT - 受控组件和非受控组件
前端·javascript·react.js
hello kitty w7 小时前
Python学习(11) ----- Python的泛型
windows·python·学习
讽刺人生Yan7 小时前
RFSOC学习记录(五)带通采样定理
学习·fpga·rfsoc
报错小能手8 小时前
linux学习笔记(49)Redis详解(1)
linux·笔记·学习
QT 小鲜肉8 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb