回答
这里是一个答案,如果你不想保持原来的列表
void testRemove() {
def list = [null, 30, null]
list.removeAll([null])
assertEquals 1, list.size()
assertEquals 30, list.get(0)
}
在一个方便的花花公子单元测试
+1为最可读的解决方案(读取如:“删除所有空值”) – 2010-07-19 21:40:19
该方法的findAll应该做你所需要的。
[null, 30, null].findAll {it != null}
+1对于不改变原始列表的 – 2010-07-19 21:38:44
'[null,30,null] .findAll {it}'将执行的解决方案。 – 2012-12-21 09:56:16
Thomas,findAll {it}将删除0以及null。如果这就是你想要的,那么你可能只是做一个findAll() – 2013-02-02 16:00:47
只需使用减:
[null, 30, null] - null
这看起来很简单,很好,并帮助我 – 2014-09-21 07:59:58
+1最佳答案! – 2014-11-17 13:48:08
也可以使用[null,30,null] .minus(null)。这对我来说似乎更易读。版本' - '提醒SBT操作员滥用。 – 2015-12-08 19:50:03
我想你会发现这是最短的,假设你不介意其他“假”值也消失:
println([null, 30, null].findAll())
公共类别的findAll()查找匹配IDENTITY 封闭的物品(即匹配Groovy的真相)。例如:
def items = [1,2,0,false,true,'','foo',[],[4,5],null] assert items.findAll()== [1, 2,真正的, '富',[4,5]
简单[null].findAll{null != it}
如果it
为null,则它,所以它不会在新的集合存在返回false。
'assertEquals [],[0,false,null] .findAll {it}' – 2014-11-26 11:55:46
你是对的,谢谢。 – 2014-11-26 13:43:49
这也可以通过grep实现:
assert [null, 30, null].grep() == [30]
或
assert [null, 30, null].grep {it} == [30]
或
assert [null, 30, null].grep { it != null } == [30]
另一种方式来做到这一点是[null, 20, null].findResults{it}
。
这确实一个到位去除所有的空项。
myList.removeAll { !it }
如果数字0是在你的域名,你可以核对空
myList.removeAll { it == null }
[null, 30, null].grep()
回报[30]
http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/List.html (发现的grep)
这看起来像https://stackoverflow.com/a/27998063/487033的副本 – doelleri 2018-02-07 17:31:26
- 1. Python - 从列表中删除空列表
- 2. 删除列表框中的空白项
- 3. 从列表中删除项目不从RecyclerView中删除它们?
- 4. R:从列表中删除空白
- 5. 从字典中删除项目,其中值为空列表
- 6. 用jquery删除空列表项目
- 7. Android Firebase从列表中删除项目
- 8. 从列表视图中删除项目
- 9. Python从列表中删除项目
- 10. 从Python列表中删除重复项
- 11. Sharepoint REST - 从列表中删除项目
- 12. 从链接列表中删除项目
- 13. 从Django列表中删除重复项
- 14. 从列表C#中删除项目#
- 15. 从列表中删除项目
- 16. WPF从列表框中删除项目
- 17. 从listview中删除Sharepoint列表项?
- 18. 从weak_ptrs列表中删除项目
- 19. 从下拉列表中删除项目
- 20. 从数据库中删除列表项
- 21. 从列表中删除项目c#
- 22. Python - 从列表中删除项目
- 23. 从列表中删除第一项?
- 24. python从列表项中删除字符
- 25. 从Python列表中删除重复项
- 26. 从列表框中删除项目
- 27. 从C++列表中删除重复项
- 28. 从列表中删除选项卡
- 29. 从列表视图中删除项目
- 30. 从通用列表中删除项目
搞笑的人问起最初的空位是如何进入名单的。似乎你可能正在解决症状而不是问题。 – Snekse 2015-01-28 23:13:37