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
}
运行结果:
三,例子
代码:
//处理按钮点击事件
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
}
运行结果: