Groovy排序列表基于另一个列表

时间:2015-06-24 16:17:15

标签: list sorting grails groovy

我有一个对象数组,我想根据以下列表进行排序:

days = ['monday','tuesday','wednesday','thursday','friday','saturday','sunday']

def i = 0

schedule.shifts.each {
    println it.dayOfWeek
    println days[i]
    if (it.dayOfWeek == days[i]) {
        shifts.add(it)
    }
}

我尝试在while循环中包装它并在不同的位置增加i,但我想我似乎无法思考它应该如何。 (继续陷入无限循环)。有人可以帮助我做到这一点吗?我已经被困了一段时间

1 个答案:

答案 0 :(得分:5)

sort方法允许您指定要排序的属性。在这种情况下,它将是日期列表中的日期索引。尝试这样的事情:

schedule.shifts.sort { shift -> days.indexOf(shift.dayOfWeek) }