Groovy 根据另一个列表对列表进行排序

Groovy sort list based off another 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)
    }
}

我试过将它包装在一个 while 循环中并在不同的位置递增 i,但我想我似乎无法考虑它应该如何。 (不断陷入无限循环)。有人可以帮我解决这个问题吗?卡了一段时间

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

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