Kotlin中的集合函数

本文会介绍一些 Kotlin 集合函数,这些函数可以极大地提高我们的开发效率,可以作为小抄随时翻阅~

删除array中重复的字符串
有很多方式可以从数组里移除重复的字符串:

// 保留元素的原始顺序
val devs = arrayOf("Amit", "Ali", "Amit", "Sumit", "Sumit", "Himanshu")
print(devs.distinct()) // [Amit, Ali, Sumit, Himanshu]
// 保留元素的原始顺序
val devs = arrayOf("Amit", "Ali", "Amit", "Sumit", "Sumit", "Himanshu")
print(devs.toSet()) // [Amit, Ali, Sumit, Himanshu]
// 保留元素的原始顺序
val devs = arrayOf("Amit", "Ali", "Amit", "Sumit", "Sumit", "Himanshu")
print(devs.toMutableSet()) // [Amit, Ali, Sumit, Himanshu]
// 不保留元素的原始顺序
val devs = arrayOf("Amit", "Ali", "Amit", "Sumit", "Sumit", "Himanshu")
print(devs.toHashSet()) // [Amit, Ali, Sumit, Himanshu]

**将array 转为 list 或者 string **
你可以使用joinToString 函数将 list 转为字符串。例如, 有一个城市列表(Delhi, Mumbai, Bangalore),,然后你可以把列表转为这样的字符串: “India is one the best country for tourism. You can visit Delhi, Mumbai, Bangalore, etc, and enjoy your holidays”.

val someKotlinCollectionFunctions = listOf(
    "distinct", "map",
    "isEmpty", "contains",
    "filter", "first",
    "last", "reduce",
    "single", "joinToString"
)
val message = someKotlinCollectionFunctions.joinToString(
    separator = ", ",
    prefix = "Kotlin has many collection functions like: ",
    postfix = "and they are awesome.",
    limit = 3,
    truncated = "etc "
)
print(message)

Kotlin 还有很多很棒的函数,比如 distinct, map, isEmpty, 等等

把一个集合转为单个结果
如果你想把一个给定的集合转换为单个结果,可以使用 rudece函数。例如你可以对列表里所有元素求和:

val numList = listOf(1, 2, 3, 4, 5)
val result = numList.reduce {
    result, item ->
    result + item
}
print(result) // 15
// 注意:如果列表是空的,会抛出RuntimeException 

判断所有元素是否满足特定条件
如果你有一个数组或者列表,你想了解其中的所有元素是否全部满足某个条件,可以使用all函数:

data class User(val id: Int, val name: String, val isCricketLover: Boolean, val isFootballLover: Boolean)
val user1 = User(id = 1, name = "Amit", isCricketLover = true, isFootballLover = 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kotlin是一门支持高阶函数的编程语言。高阶函数是指可以接受另一个函数作为参数,或者返回另一个函数作为结果的函数。 以下是一些常见的Kotlin高阶函数: 1. map:对集合的每个元素应用给定的函数,并返回一个新的集合。 ```kotlin val numbers = listOf(1, 2, 3, 4, 5) val squares = numbers.map { it * it } // [1, 4, 9, 16, 25] ``` 2. filter:从集合过滤出满足给定条件的元素,并返回一个新的集合。 ```kotlin val numbers = listOf(1, 2, 3, 4, 5) val evenNumbers = numbers.filter { it % 2 == 0 } // [2, 4] ``` 3. reduce:对集合的元素应用给定的累加函数,并返回一个单一的累加结果。 ```kotlin val numbers = listOf(1, 2, 3, 4, 5) val sum = numbers.reduce { acc, i -> acc + i } // 15 ``` 4. flatMap:将集合的每个元素映射到一个集合,并将所有集合合并为一个新的集合。 ```kotlin val words = listOf("hello", "world") val letters = words.flatMap { it.toList() } // ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'] ``` 5. sortedBy:按照给定的属性排序集合的元素,并返回一个新的排序后的集合。 ```kotlin data class Person(val name: String, val age: Int) val people = listOf(Person("Alice", 29), Person("Bob", 31), Person("Charlie", 28)) val sortedPeople = people.sortedBy { it.age } // [Person(name=Charlie, age=28), Person(name=Alice, age=29), Person(name=Bob, age=31)] ``` 这些高阶函数使得Kotlin代码更加简洁、易读、易维护,同时也提高了代码的可重用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值