kotlin 集合 : indexOf / elementAt/ / first / last

找元素

indexOf : 元素 找 下標


/**
 * 元素 找 下標
 */
private fun indexOf() {
    val mList = listOf(1, 2, 3, 4, 2)
    //返回指定元素的下標,沒有就返回-1
    println(mList.indexOf(3))//2
    println(mList.indexOf(0))//-1

    //返回第一個符合條件的元素的下標,沒有就返回-1 。
    println(mList.indexOfFirst { it == 2 })//1

    //返回最後一個符合條件的元素下標,沒有就返回-1 。
    println(mList.indexOfLast { it == 2 })//4
}


elementAt : 下標 找 元素


/**
 * 下標 找 元素
 */
private fun elementAt() {
    val mList: MutableList<String> = mutableListOf("a", "b", "c", "d", "e", "f", "g")
    //查找下標對應的元素,如果下標越界會拋IndexOutOfBoundsException。
    println("下標爲5的元素值:${mList.elementAt(5)}")
    //下標爲5的元素值:f

    //查找下標對應元素,如果越界會根據方法返回默認值。
    println(mList.elementAtOrElse(5) { "default value" })
    //f
    println(mList.elementAtOrElse(10) { "default value" })
    //default value

    //查找下標對應元素,如果越界就返回null
    println(mList.elementAtOrNull(10))
    //null
}

獲取元素

first :

/**
 * 獲取第一個元素
 */
private fun first() {
    val mList1 = mutableListOf(0, 1, 2, 3, 4, 5)
    //返回集合第1個元素,
    // 如果是空集,拋出異常java.util.NoSuchElementException: List is empty.。
    println(mList1.first())//0


    val mList2 = listOf<Int>()
    //返回集合第1個元素,如果是空集, 對空指針異常處理的函數,如果集合爲空,則返回null。
    println(mList2.firstOrNull())//null


    val mList3 = listOf(1, 2, 3)
    //返回符合條件的第一個元素,沒有則拋異常NoSuchElementException 。
    println(mList3.first { it % 2 == 0 })//2


    val mList4 = listOf(1, 2, 3)
    //對應的有針對異常處理的函數firstOrNull(predicate: (T) -> Boolean): T? ,
    // 返回符合條件的第一個元素,沒有就返回null
    println(mList4.first { it % 2 == 0 })//2
}

last :


/**
 * 獲取最後一個元素
 */
private fun last() {
    val mList1 = mutableListOf(0, 1, 2, 3, 4, 5)
    // 如果是空集,拋出異常java.util.NoSuchElementException: List is empty.。
    println(mList1.last())//5


    val mList2 = listOf<Int>()
    //如果是空集, 對空指針異常處理的函數,如果集合爲空,則返回null。
    println(mList2.lastOrNull())//null


    val mList3 = listOf(1, 2, 3)
    //返回符合條件的最後一個元素,沒有則拋異常NoSuchElementException 。
    println(mList3.last { it % 2 == 0 })//2


    val mList4 = listOf(1, 2, 3)
    //對應的有針對異常處理的函數firstOrNull(predicate: (T) -> Boolean): T? ,
    // 返回符合條件的最後一個元素,沒有就返回null
    println(mList4.lastOrNull { it % 2 == 0 })//2
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章