Gav*_*vin 2 functional-programming kotlin
所以这可能更多是关于函数式编程而不是Kotlin,我在那个阶段有点知识是危险的,我在Kotlin写了应用程序所以似乎公平地问Kotlin问题是我感兴趣的Kotlins结构.
我有一系列项目,它们分三批,所以流可能看起来像
1,a,+,2,b,*,3,c,&.......
Run Code Online (Sandbox Code Playgroud)
我想要做的是把它分成三个列表,目前我这样做是通过分成两个列表,一个包含数字,一个包含其他所有,然后取结果的后半部分,字母和符号和再次划分为字母和符号,因此我最终得到三个列表.
这让我觉得有些低效,也许功能方法不是最好的方法.
有没有一种有效的方法可以做到这一点,是我的选择,这个还是for循环?
谢谢
您可以使用groupBy方法按元素类型对序列的元素进行分组:
val elementsByType = sequence.groupBy { getElementType(it) }
Run Code Online (Sandbox Code Playgroud)
其中getElementType是函数返回类型的元素的:它是否是一个字母或一个数字,或符号.此函数可以返回一个数字,例如1,2,3或具有3个不同条目的某个枚举的值.
groupBy 返回从元素类型到该类型元素列表的映射.
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |