我们可以在排序中使用两个标准吗?

时间:2012-04-30 06:07:12

标签: sorting collections groovy

我一直在使用以下代码对域名结果进行排序

  

vpisort.sort {it.price}

我想知道我是否可以使用像

这样的东西
  

vpisort.sort {it.price-它?.discount}

2 个答案:

答案 0 :(得分:5)

我发现了this帖子。你可以尝试在你的情况下使用它:

vpisort.sort { a, b -> a.price <=> b.price ?: a?.discount <=> b?.discount }

首先考虑价格,然后,只有当a和b等于价格且结果为零时,使用Elvis运算符才能比较a和by折扣。

答案 1 :(得分:1)

HM。这不是一个问题,而是一个时髦的问题。考虑到这一点,解决方案很简单:

打开常规控制台,试试你的线路。或者看看这些例子:

http://groovy.codehaus.org/JN1015-Collections

在SO上还有另一个像这样的问题:

Groovy list.sort by first, second then third elements

希望有所帮助!

更新:如果您想拥有域类的默认排序顺序,请查看此GORM功能:http://grails.org/doc/latest/guide/single.html#ormdsl(5.5.3默认排序顺序)

相关问题