我有一个包含数字的 Groovy 数组。我需要创建两个仅包含偶数数字的新数组。该数组中的位置不均匀。
我能找到的最好的方法是这样的,但我觉得这里还有很大的改进空间:
def evenDigits = digits
.indexed(1)
.findAll { i, v -> i % 2 == 0 }
.collect { it.value }
Run Code Online (Sandbox Code Playgroud)
显然,unevenDigits变体是简单地检查findAll闭包中的模数1而不是0。
有谁知道这段代码是否可以改进或压缩?
一个“不太聪明”(而且肯定更高效)的解决方案:
def evens = [], odds = []
digits.eachWithIndex{ v, ix -> ( ix & 1 ? odds : evens ) << v }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |