元素操作符

contains

如果指定元素可以在集合中找到,则返回true。

assertTrue(list.contains(2))

elementAt

返回给定index对应的元素,如果index数组越界则会抛出IndexOutOfBoundsException

assertEquals(2, list.elementAt(1))

elementAtOrElse

返回给定index对应的元素,如果index数组越界则会根据给定函数返回默认值。

assertEquals(20, list.elementAtOrElse(10, { 2 * it }))

elementAtOrNull

返回给定index对应的元素,如果index数组越界则会返回null。

assertNull(list.elementAtOrNull(10))

first

返回符合给定函数条件的第一个元素。

assertEquals(2, list.first { it % 2 == 0 })

firstOrNull

返回符合给定函数条件的第一个元素,如果没有符合则返回null。

assertNull(list.firstOrNull { it % 7 == 0 })

indexOf

返回指定元素的第一个index,如果不存在,则返回-1

assertEquals(3, list.indexOf(4))

indexOfFirst

返回第一个符合给定函数条件的元素的index,如果没有符合则返回-1

assertEquals(1, list.indexOfFirst { it % 2 == 0 })

indexOfLast

返回最后一个符合给定函数条件的元素的index,如果没有符合则返回-1

assertEquals(5, list.indexOfLast { it % 2 == 0 })

last

返回符合给定函数条件的最后一个元素。

assertEquals(6, list.last { it % 2 == 0 })

lastIndexOf

返回指定元素的最后一个index,如果不存在,则返回-1

lastOrNull

返回符合给定函数条件的最后一个元素,如果没有符合则返回null。

val list = listOf(1, 2, 3, 4, 5, 6)
assertNull(list.lastOrNull { it % 7 == 0 })

single

返回符合给定函数的单个元素,如果没有符合或者超过一个,则抛出异常。

assertEquals(5, list.single { it % 5 == 0 })

singleOrNull

返回符合给定函数的单个元素,如果没有符合或者超过一个,则返回null。

assertNull(list.singleOrNull { it % 7 == 0 })