kotlin_04 数据结构

1、创建数组

    //1、不说明元素类型创建数组
    var array=arrayOf(1,"hello",true)

    //2、说明元素类型创建数组。
    // 注:这里的Array =arrayOf(1,2),Array这里没有空格会报错
    // Unexpected tokens (use ';' to separate expressions on the same line)
    var array1:Array =arrayOf(1,2)

    //3、使用arrayOfNulls创建空数组
    //注意:1、此方法必须说明元素类型及大小 2、元素类型后要加?因为允许值为Null
    var arrayNull:Array =arrayOfNulls(5)
    arrayNull[0]=1

    //4、使用Array的构造函数,动态创建数组
    var array2=Array(4){it->it*it}   //array2=(0,1,4,9)

    //5、使用装箱数组类
    var array3=IntArray(3){it->it}
    var array4=BooleanArray(2){ true }   //全是true

附:装箱函数表

 上图源自:【全网稀缺】2021Android从零入门到实战(Kotlin最新版)_哔哩哔哩_bilibili

2、遍历数组

2、1 for in

    println("======for in======= ")
    //1、for in
    for (item in array2){
        print("$item ")
    }

2、2 下标遍历

    //2、下标遍历
    for(i in array2.indices){
        println("$i ${array2[i]} ")
    }

2、3 同时遍历下标和元素

    //3、同时遍历下标和元素
    for((index,item) in array2.withIndex()){
        println("$index $item ")
    }

2、4  forEach遍历数组

    //4、forEach遍历数组
    array2.forEach{
        print("$it ")
    }

2、5 forEachIndexed遍历,同时遍历下标和值

    println("==forEachIndexed遍历,同时遍历下标和值==")
    array2.forEachIndexed{index,value->
        println("$index $value ")
    }

kotlin_04 数据结构_第1张图片

 3、集合

3、1 种类

        与java一样,有List、Set、Map,属性也与java中的一样,不再做过多阐述。

 

  上两图源自:【全网稀缺】2021Android从零入门到实战(Kotlin最新版)_哔哩哔哩_bilibili

创建集合代码演示:

    //可变列表
    val list=mutableListOf(1,"he",3)  //直接添加元素则可以不用声明元素类型
    val list1= mutableListOf()   //否则必须要声明元素类型
    list1.add(0)
    list1.add(1)
    //不可变列表
    val list2=listOf(1,2)
    
    //可变集合
    val set=mutableSetOf(1,2,)
    //不可变集合
    val set1= setOf(1,2)
    
    //可变map
    val map= mutableMapOf(Pair("key",30))
    map["李清照"] = 2000
    map.put("林青霞",68)
    //不可变map
    val map1= mapOf(Pair("key","value"))

集合函数使用:

    val list=mutableListOf(1,"he",3)  //直接添加元素则可以不用声明元素类型
    val list1= mutableListOf()   //否则必须要声明元素类型
    list1.add(0)
    list1.add(1)
    list1.add(2)
    
    /*移除值为1的元素 
    报错如下:Using 'remove(Int): T' is an error. Use removeAt(index) instead.
    解决方法:上述list定义去掉"he",让列表存储单一类型元素
    */
    //list.remove(1)  
    list.removeAt(0)   //移除下标为0的元素
    list.clear()    //清除list所有元素
    //list.add(0,1)  //在下标0上插入1,结果:下标越界报错,clear后list的size为0,index不能超过size

    println("======sort排序,正序======= ")
    list1.sort()  //排序,正序
    println(list1)
    println("======reverse倒转======= ")
    list1.reverse()   //倒转
    println(list1)
    println("======sortDescending从大到小排序======= ")
    list1.sortDescending()  //从大到小排序
    println(list1)
    println("======shuffle随机排序======= ")
    list1.shuffle()    //随机排序
    println(list1)

输出:

kotlin_04 数据结构_第2张图片

 

你可能感兴趣的:(Kotlin,kotlin,数据结构)