arrays - 在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'],]
解决方案
你可以这样做
meal.sort { a, b -> a[2] <=> b[2] ?: a[1] <=> b[1] }
当两者相等时,a[2] <=> b[2]
is 0
,所以它运行后半部分
推荐阅读
- javascript - glb 文件在 ar js 版本 1.0.4 中不起作用
- python - 是否需要在 PyTorch 中清除 GPU 张量?
- logstash - 如何更改logstash创建ES索引时区?
- javascript - 如何根据其他对象修改对象数组中的值
- python - 我无法使用请求 Python 登录 Instagram(错误请求 400)
- java - Kotlin中的 java 等价物是什么?
- python - 如何在python中选择性地转置和堆叠列?
- driver - Xilinx Zynq 外设驱动程序
- javascript - 后端未将书籍添加到 android app sql
- python - matplotlib:在 3D 轴上绘制路径