美文网首页
集合的函数API

集合的函数API

作者: 主音King | 来源:发表于2020-08-10 10:00 被阅读0次

基础 filter 和 map

filter进行条件过滤需要的新集合

        val list = listOf(1, 2, 3, 4)
        // 过滤出偶数 2,4
        Log.d(TAG, "test:${list.filter { it % 2 == 0 }} ")
        val people = listOf(Person("George", 18), Person("Bob", 19))
        // 过滤出大于18岁的
        Log.d(TAG, "test: ${people.filter { it.age > 18 }}")

map进行元素操作改变元素内容,生成新集合

        val list = listOf(1, 2, 3, 4)
        // 对元素进行平方
        Log.d(TAG, "test: ${list.map { it * it }}")

all、any、count、find判断条件

all:是否全部满足条件 Boolean
any:是否存在这个条件 Boolean
count:满足条件的个数 Int
find:找到存在的对象 T(如果有多个,则返回第一个)

        val canIn27 = { p: Person -> p.age <= 27 }
        val people = listOf(Person("a", 18), Person("a", 19), Person("c", 28))
        // 条件判断
        Log.d(
            TAG, "是否都小于27岁: ${people.all(canIn27)} 是否存在小于27岁的:${people.any(canIn27)}" +
                    " 有多少个小于27岁:${people.count(canIn27)} 找到小于27岁:${people.find(canIn27)}"
        )

groupBy 列表换成分组map Map<Key,Value>

        val people  = listOf(Person("a",18),Person("b",18),Person("c",27))
        // Map: key->value  eg: name->Person
        Log.d(TAG, "test: ${people.groupBy { it.name }}")

flatMap 和 flatten 处理嵌套集合中的元素

flatMap:对集合中每个元素做变换(映射);把多个列表合并(平铺)成一个列表
flatten:不需要做任何变换,只是平铺一个集合

        val books = listOf(Book("a", listOf("a1","a2")),Book("b", listOf("b1","b2")))
        val str = listOf("abc","def")
        val list = listOf(1..3,4..7,9..11)
        Log.d(TAG, "输出author集合: ${books.flatMap { it.author }.toSet()} 输出字符集合:${str.flatMap { it.toList() }}" +
                " 平铺集合:${list.flatten()}")

class Book(val title:String, val author:List<String>)

相关文章

  • Kotlin Collection VS Kotlin Sequ

    一. 集合中的函数式 API 虽然 Kotlin Collection 中的函数式 API 类似于 Java 8 ...

  • 集合的函数API

    基础 filter 和 map filter进行条件过滤需要的新集合 map进行元素操作改变元素内容,生成新集合 ...

  • Kotlin进阶篇:Lambda编程3,lambda在序列中的使

    前言 上篇文章我们说了lambda在集合中的使用,我们不仅学习了集合的函数式API,也了解到了在链式调用集合函数式...

  • Kotlin知识归纳(八) —— 序列

    前序 之前探究集合的函数式Api时发现,这些函数都会遍历集合并且提早创建新集合,每一步的中间结果会被存储在新集合中...

  • 集合式的函数API

    1.1、基础:filter和map filter函数遍历集合并选出应用给定lambda后会返回true的那些元素 ...

  • Kotlin 集合函数式Api

    filter函数 筛选出符号条件的元素 map map函数对集合中每一个元素应用给定函数并且把相对应的元素收集起来...

  • Java8 Stream API

    Stream API是Java8中处理集合的关键组件,提供了各种丰富的函数式操作。 Stream的创建 任何集合都...

  • Stream API

    Stream是Java8中用于处理集合的API,利用函数式编程的思想方便的处理Java的集合类. 创建Stream...

  • Kotlin第三章小结

    Kotlin没有定义自己的集合类,而是在Java集合类的基础上提供了更丰富的api Kotlin可以给函数参数定义...

  • Kotlin-Lambda编程

    1.通过集合的函数式API来入门Lambda[https://www.jianshu.com/p/89dd3392...

网友评论

      本文标题:集合的函数API

      本文链接:https://www.haomeiwen.com/subject/voysrktx.html