kotlin: first/last函数

一,功能

first 是取集合元素中第一个元素,或符合条件的第一个元素

last 是取集合元素中最后一个元素, 或符合条件的最后一个元素

二,例子

代码:

        //处理按钮点击事件
        binding.button1.setOnClickListener {
            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.first()) //因为空集合,触发异常
            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.firstOrNull { it % 2 == 0 })//2
            println(mList4.firstOrNull { it % 7 == 0 })//null
        }

运行结果:

image

三,例子

代码:

        //处理按钮点击事件
        binding.button2.setOnClickListener {
            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.last())    //因为空集合,触发异常
            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
            println(mList4.lastOrNull { it % 7 == 0 })//null
        }

运行结果:

image

posted @ 2025-08-16 10:14  刘宏缔的架构森林  阅读(42)  评论(0)    收藏  举报