Groovy list.sort by first, second then third elements

前端 未结 7 1244
旧时难觅i
旧时难觅i 2021-02-02 09:42

I have a groovy list of lists i.e.

list = [[2, 0, 1], [1, 5, 2], [1, 0, 3]]

I would like sort it by order of the first element, then second, th

7条回答
  •  青春惊慌失措
    2021-02-02 10:00

    Here is another method using Groovy's Spaceship and Elvis operators:

    ​def list = [[2, 0, 1], [1, 5, 2], [1, 0, 3]]
    
    list.sort { a, b ->
       a[0] <=> b[0] ?: a[1] <=> b[1] ?: a[2] <=> b[2]
    }
    
    assert list == [[1, 0, 3], [1, 5, 2], [2, 0, 1]]​
    

    Source: Groovier way of sorting over multiple fields in a list of maps in groovy

提交回复
热议问题