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]
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章