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]
}

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]
}

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
}

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
}

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
}

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}")
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破浪会有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值