首页 > 解决方案 > 在groovy中对对象数组进行排序

问题描述

我有一个声明的对象数组,如下所示:

def meal = [['Apple','Tomatoes', 'Coffee'],['Peach','Broccoli', 'Water'],['Orange','Peas', 'Pepsi'],['Banana','Beans', 'Coffee']]

我需要根据每个对象的第三个元素对这些对象进行排序,然后再根据第二个元素对这些对象进行排序。所以我的输出是:

meal = [['Banana','Beans', 'Coffee'], ['Apple','Tomatoes', 'Coffee'],['Orange','Peas', 'Pepsi'],['Peach','Broccoli', 'Water'],]

标签: arrayssortinggroovy

解决方案


你可以这样做

meal.sort { a, b -> a[2] <=> b[2] ?: a[1] <=> b[1] }

当两者相等时,a[2] <=> b[2]is 0,所以它运行后半部分


推荐阅读