kotlin 集合list

創建

listOf

/**
 * 不可變集合
 */
private fun createList1() {
    //創建不可變List
    //listOf()用於創建沒有元素的空List
    val mList1: List<Int> = listOf()
    println(mList1)
    //[]

    //listOf(element: T)用於創建只有一個元素的List
    val mList2: List<Int> = listOf(0)
    println(mList2)
    //[0]

    //listOf(vararg elements: T)用於創建擁有多個元素的List
    val mList3: List<Int> = listOf(1, 3, 5, 7, 9)
    println(mList3)
    //[1, 3, 5, 7, 9]
}

mutableListOf

/**
 * 可變集合
 */
private fun createList2() {
    //創建可變集合
    val mList1 = mutableListOf(2, 4, 6, 8, 10)
    println(mList1)
    //[2, 4, 6, 8, 10]
    mList1.add(0, 0) // 在下標爲0的地方添加一個0元素
    println(mList1)
    //[0, 2, 4, 6, 8, 10]
}

toMutableList


/**
 * 不可變集合 -> 可變集合
 */
private fun toMutableList() {
    // 不可變集合
    val mList: List<Int> = listOf(1, 3, 5, 7, 9)
    // 調用toMutableList()函數進行轉換
    val mMutableList = mList.toMutableList()
    // 調用可變函數的add()方法
    mMutableList.add(11)
    // 打印輸出
    println(mMutableList)
    //[1, 3, 5, 7, 9, 11]
}

遍歷



fun iterator() {
    val mutableList: MutableList<Int> = mutableListOf(1, 2, 3, 4)
    mutableList.forEach {
        println("Mutable List Elements:$it")
    }

    println("======================================")
    for (value in mutableList) {
        println("value  :  $value")
    }

    println("======================================")
    for ((index, value) in mutableList.withIndex()) {
        println("$index  :  $value")
    }
}

判斷元素

count : 統計個數


private fun count() {
    //返回集合元素個數
    val mList1 = arrayListOf(0, 1, 2, 3, 4)
    println(mList1.count())//5

    //返回符合匹配條件的元素的個數
    val mList2 = arrayListOf(0, 1, 2, 3, 4)
    println(mList2.count { it % 2 == 0 })//3
}

contains : 是否包含

private fun contain() {
    val mList = mutableListOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
    // 取集合中存在的元素
    println(mList.contains(5))//true
    // 取集合中不存在的元素
    println(mList.contains(20))//false
}


max / min :

private fun maxMin() {
    //max, min 查詢最大,最小元素,空集返回null
    val mList = arrayListOf(0, 1, 2, 3)
    println(mList.max())//3
    println(mList.min())//0
}

sumBy / maxBy / minBy



private fun sumBy() {
    val sumByUser = mList.sumBy {
        it.age
    }
    println(sumByUser)
}
//21

private fun maxBy() {
    val maxByUser = mList.maxBy {
        it.age
    }
    println(maxByUser)
}
//User(age=6, name=16)

private fun minBy() {
    val minByUser = mList.minBy {
        it.name
    }
    println(minByUser)
}
//User(age=5, name=1)


data class User(val age: Int, val name: String)

val mList = arrayListOf(
    User(1, "10"),
    User(4, "18"),
    User(5, "1"),
    User(6, "16"),
    User(3, "3"),
    User(2, "8")
)


順序

reversed :



private fun reversed() {
    //倒序排列集合元素。
    val mList = listOf(1, 3, 2, 4)
    println(mList.reversed())
    //[4, 2, 3, 1]
}

sort :


private fun sort() {
    //升序排序和降序排序。
    val mList = listOf(1, 3, 2, 4)
    println(mList.sorted())
    //[1, 2, 3, 4]
    println(mList.sortedDescending())
    //[4, 3, 2, 1]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章