• 一起来学Kotlin:概念:14. Kotlin List 的使用 1:filter,map,count,first,last,any,find


    一起来学Kotlin:概念:14. Kotlin List 的使用 1:filter,map,count,first,last,any,find

    这里我们介绍 List 中

    • filter
    • map
    • count
    • first,last
    • any, all, none
    • find,findLast

    的使用。



    1 filter

    filter就像其本意一样,可以通过 filter 对 Kotlin list 进行过滤。例子如下(我们可以直接在 Kotlin Playground 中运行):

    fun main()
    {
        val numbers = listOf(1, -2, 3, -4, 5, -6)
        val positives = numbers.filter { x -> x > 0 }
        val negatives = numbers.filter { it < 0 }      // 这里我们可以使用 it 
        
        println("positive values: ${positives}")        // 打印 positive values: [1, 3, 5]
        println("negative values: ${negatives}")        // 打印 positive values: [-2, -4, -6]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2 map

    map 扩展函数使我们能够将变化应用于集合中的所有元素。

    fun main()
    {
        val numbers = listOf(1, -2, 3, -4, 5, -6)     
        val doubled = numbers.map { x -> x * 2 }
        val tripled = numbers.map { it * 3 }          
        
        println("doubled values: ${doubled}")       // 打印 doubled values: [2, -4, 6, -8, 10, -12]
        println("tripled values: ${tripled}")       // 打印 tripled values: [3, -6, 9, -12, 15, -18]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3 count

    count 函数返回集合中的元素总数或与给定条件匹配的元素数。

    fun main()
    {
        val numbers = listOf(1, -2, 3, -4, 5, -6)
        val totalCount = numbers.count()                     
        val evenCount = numbers.count { it % 2 == 0 }        
        
        println("totalCount: ${totalCount}")    // 打印 totalCount: 6
        println("evenCount: ${evenCount}")      // 打印 evenCount: 3
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    4 first, last

    返回列表中第一个或最后一个元素的值。

    fun main()
    {
        val numbers = listOf(1, -2, 3, -4, 5, -6)            
        val first = numbers.first()                          
        val last = numbers.last()                            
        val firstEven = numbers.first { it % 2 == 0 }        
        val lastOdd = numbers.last { it % 2 != 0 }                  
        
        println("first element: ${first}")          // 打印 first element: 1
        println("last element: ${last}")            // 打印 last element: -6
        println("first Even element: ${firstEven}") // first Even element: -2
        println("last Odd element: ${lastOdd}")     // last Odd element: 5
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    5 any, all, none

    这些函数检查是否存在与给定条件匹配的集合元素,并返回布尔值。

    fun main()
    {
        val numbers = listOf(1, -2, 3, -4, 5, -6)            
        val anyNegative = numbers.any { it < 0 }             
        val anyGT6 = numbers.any { it > 6 }                  
        val allEven = numbers.all { it % 2 == 0 }            
        val allLess6 = numbers.all { it < 6 }  
        val allEven = numbers.none { it % 2 == 1 }           
        val allLess6 = numbers.none { it > 6 }               
    
        println("any negative elements: ${anyNegative}")    // 打印 any negative elements: true
        println("any elements larger than six: ${anyGT6}")  // any elements larger than six: false
        println("是否所有元素都是双数:${allEven}")           // 是否所有元素都是双数:false
        println("是否所有元素都小于6: ${allLess6}")           // 是否所有元素都小于6: true
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    6 find,findLast

    findfindLast 函数返回与给定条件匹配的第一个或最后一个集合元素。如果没有这样的元素,函数将返回 null。

    fun main()
    {
        val words = listOf("Lets", "find", "something", "in", "collection", "somehow")  
        val first = words.find { it.startsWith("some") }           
        val last = words.findLast { it.startsWith("some") }     
        val nothing = words.find { it.contains("nothing") } 
    
        println("find first word which contains 'some': ${first}")
        println("find last word which contains 'some: ${last}")
        println("find first word which contains 'nothing': ${nothing}")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    Lepton 无损压缩原理及性能分析
    Java基础---第十篇
    Java -基础知识之类的初始化顺序
    数据结构—查找方法改进流程
    CSS 中的变量
    文件批量改名:轻松批量重命名快手素材文件,提高工作效率
    Axios有哪些常用的方法?
    关于cgroup 学习
    Lucas在与位运算有关的组合数中的应用
    解决typescript报错=》不能将类型“undefined”分配给类型“boolean”
  • 原文地址:https://blog.csdn.net/zyctimes/article/details/127577771