diff --git a/src/senior/Lambda/Collection.kt b/src/senior/Lambda/Collection.kt new file mode 100644 index 0000000..76d80e4 --- /dev/null +++ b/src/senior/Lambda/Collection.kt @@ -0,0 +1,33 @@ +package senior.Lambda + +/** + * 集合 + * + */ + +fun main(args: Array) { + val list = listOf(20, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 33, 12, 74, 23, 21) + println("list = $list") + + // 查找 + println("list = $list") + // 只会返回查找到的第一个元素 + println("element > 2 = ${list.find { it > 2 }}") + + // 查找满足条件的第一个元素 未找到会抛异常 + println("element > 2 = ${list.first { it > 2 }}") + + // 查找满足条件的最后一个元素 未找到会抛异常 + println("element < 33 = ${list.last { it < 33 }}") + + // 查找到的结果超过1个将会异常 + println("element single one = ${list.single { it == 9 }}") + + // takewile只有第一个元素满足条件才能继续向下查找 + println("element > 10 = ${list.takeWhile { it > 2 }}") + println("element > 10 = ${list.takeWhile { it > 20 }}") + + // 查找所有满足条件的元素 + println("element > 10 = ${list.filter { it >= 20 }}") + +} \ No newline at end of file