Groovy:如何按字符串长度顺序对 String:s 的 ArrayList 进行排序?
Posted
技术标签:
【中文标题】Groovy:如何按字符串长度顺序对 String:s 的 ArrayList 进行排序?【英文标题】:Groovy: How do I sort an ArrayList of String:s in length-of-string order? 【发布时间】:2010-10-18 06:09:56 【问题描述】:如何在 Groovy 中按字符串长度顺序对 String
中的 ArrayList
进行排序?
代码:
def words = ['groovy', 'is', 'cool']
// your code goes here:
// code that sorts words in ascending length-of-word order
assert words == ['is', 'cool', 'groovy']
肯定有不止一种方法可以做到这一点 - 所以我会将答案授予提供最优雅解决方案的人。
【问题讨论】:
【参考方案1】:words = words.sort it.size()
按降序排列
words = words.sort -it.size()
【讨论】:
很遗憾,即使在 2013 年,这也不是官方 groovy 文档的一部分(至少我从未找到过这个)。 @Panique:您希望找到什么?排序方法在 API 文档中,剩下的只是了解闭包的工作原理。 @MichaelBorgwardt 我刚刚在-it.size()
中搜索了几个小时、几天、几周、几年甚至几个世纪的小减号。以前从未见过。一个好的文档应该提供这样的信息,因为这是基本的东西。
谢谢!升序有效,但是,-
的降序不【参考方案2】:
如果在接受的解决方案中 -it.size()
不适用于降序,你可以试试这个:
-1 * it.size()
【讨论】:
这些东西有什么不同?以上是关于Groovy:如何按字符串长度顺序对 String:s 的 ArrayList 进行排序?的主要内容,如果未能解决你的问题,请参考以下文章