groovy - 从 Groovy 中的数组中选择(非)偶数索引上的元素
问题描述
我有一个包含数字的 Groovy 数组。我需要创建两个仅包含偶数位数的新数组。该阵列中的位置不均匀。
我能找到的最好的方法是这样,但我觉得这里有很大的改进空间:
def evenDigits = digits
.indexed(1)
.findAll { i, v -> i % 2 == 0 }
.collect { it.value }
显然,unevenDigits
变体将是简单地检查findAll
闭包中的模数1
而不是0
.
有谁知道这段代码是否可以改进或压缩?
解决方案
一个“不那么聪明”(而且肯定更高效)的解决方案:
def evens = [], odds = []
digits.eachWithIndex{ v, ix -> ( ix & 1 ? odds : evens ) << v }
推荐阅读
- pandas - 根据熊猫中的dob和给定日期计算年龄,如果熊猫中缺少dob,则将年龄设为零
- python - AttributeError: _mock_methods 扩展 MagicMock 类时
- centos - 在 CentOs 中启动/启用 Issabel Web 服务器
- firebase - `gsutil cp` 命令抛出“OSError:文件名、目录名或卷标语法不正确”
- c# - 在 .NET 上等待多个任务
- html - 当视口变得太小时时,Flexbox 居中 2 个图像并缩放图像
- python - 如何提高我的网页抓取脚本(Python 和 Selenium)的性能(运行时)
- jenkins - 詹金斯的空手道选项
- javascript - 如何在 .then() 中设置一个变量以在以后的 .then() 中使用 - Firebase
- docusignapi - Docusign - 没有用于嵌入式签名的重定向 url