arrays - Groovy 过滤器二维数组

标签 arrays groovy findall

​def a = [[6, 4], [8, 6], [5, 3]]

a.findAll {
   it.findAll {
      it != 4 && it != 6 
   }
}​​

所以我编写了这段伪代码,这样我就不需要编写复杂的代码了。所以我想从数组中删除所有 4,但如果我只写 it != 4 然后它不会删除它,如果我像现在这样写两个数字 it != 4 && it != 6 然后它会删除它。我应该以不同的方式使用它吗?我想要这个数组

def a = [[6, 4], [8, 6], [5, 3]]

例如从中删除所有数字 4。

最佳答案

删除包含 4 的子列表

使用in 语法检查子列表内部。所以你的代码可以重写为:

def a = [[6,4],[8,6],[5,3]] 
assert  [[8, 6], [5, 3]] == a.findAll { !(4 in it) }

从每个子列表中删除 4

def a = [[6,4],[8,6],[5,3]] 
// Modify list in place, to return a new list use collect
assert  [[6], [8, 6], [5, 3]] == a.each{ it.removeAll { it == 4 } }

关于arrays - Groovy 过滤器二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34763164/

相关文章:

python - 使用 BeautifulSoup 抓取亚马逊网页

arrays - 有效二维数组的delta数据结构

python - 在 Python 中 reshape 数组

c++ - 如何将 "std::vector<std::string>"转换为 "const char* array"?

groovy - gradle 中的自定义任务/插件

python - BeautifulSoup 查找嵌套标签, child

java - 如何读取文件,然后将每个文件整数分配给数组列表?

java - 如何从 Java 评估我自己的 Groovy 脚本?

java - 为elasticsearch客户端构建XContentBuilder json查询

python - 使用正则表达式查找段落中出现特定短语后的所有名词短语