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")
    }
相关推荐
Gain_chance13 分钟前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
小迷糊的学习记录30 分钟前
Vuex 与 pinia
前端·javascript·vue.js
发现一只大呆瓜41 分钟前
前端性能优化:图片懒加载的三种手写方案
前端·javascript·面试
不爱吃糖的程序媛1 小时前
Flutter 与 OpenHarmony 通信:Flutter Channel 使用指南
前端·javascript·flutter
利刃大大1 小时前
【Vue】Element-Plus快速入门 && Form && Card && Table && Tree && Dialog && Menu
前端·javascript·vue.js·element-plus
NEXT061 小时前
AI 应用工程化实战:使用 LangChain.js 编排 DeepSeek 复杂工作流
前端·javascript·langchain
Gain_chance1 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
光影少年2 小时前
react的hooks防抖和节流是怎样做的
前端·javascript·react.js
XH华2 小时前
备战蓝桥杯,第九章:结构体和类
学习·蓝桥杯
小毛驴8502 小时前
Vue 路由示例
前端·javascript·vue.js