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")
    }
相关推荐
lili-felicity1 分钟前
React Native for Harmony 个人消息列表最新消息置顶实现(多维度权重统计)
javascript·react native·react.js
半夏知半秋4 分钟前
kcp学习-skynet中的kcp绑定
开发语言·笔记·后端·学习
Tigger7 分钟前
用 Vue 3 做了一套年会抽奖工具,顺便踩了些坑
前端·javascript·vue.js
专注于大数据技术栈10 分钟前
java学习--HashSet
java·学习·哈希算法
OpenTiny社区25 分钟前
OpenTiny 2025年度贡献者榜单正式公布~
前端·javascript·vue.js
biubiubiu070634 分钟前
Vue脚手架创建项目记录
javascript·vue.js·ecmascript
zh_xuan1 小时前
kotlin对象表达式
开发语言·kotlin
boooooooom1 小时前
手写简易Vue响应式:基于Proxy + effect的核心实现
javascript·vue.js
木木木一1 小时前
Rust学习记录--C11 编写自动化测试
java·学习·rust