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

con*_*ore 2 sorting grails groovy list

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

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)
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ata*_*lor 6

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

schedule.shifts.sort { shift -> days.indexOf(shift.dayOfWeek) }
Run Code Online (Sandbox Code Playgroud)