首页 > 解决方案 > 如何使用子数组对主数组进行排序(Android)

问题描述

我想使用子数组值对我的主数组进行排序。输出如下:

{
  "status": true,
  "statusCode": 100,
  "message": "",
  "data": {
    "win": [
      {
        "id": "1",
        "admin": [
          {
            "id": "38",
            "name": "Admin 05",
            "point": {
              "id": "96",
              "name": "96"
            }
          }
        ]
      },
      {
        "id": "2",
        "admin": [
          {
            "id": "39",
            "name": "Admin 06",
            "point": {
              "id": "95",
              "name": "95"
            }
          }
        ]
      },
      {
        "id": "3",
        "admin": [
          {
            "id": "26",
            "name": "Admin 05",
            "point": {
              "id": "98",
              "name": "98"
            }
          }
        ]
      }
    ]
  }
}

我想要如下数组,但我不能这样做。

id = 3 // 首先

id = 1 // 秒

id = 2 // 第三个等等。

我在下面试过:

Collections.sort(loWinArray, object : Comparator<Win> {
                    override fun compare(obj1: Win, obj2: Win): Int {
                        // ## Ascending order
                        return (obj2.admin.get(0).point!!.name.toInt() - obj1.admin.get(0).point!!.name.toInt()) // To compare string values
                    }
                })

有人可以帮忙吗?

标签: androidarrayssortingkotlin

解决方案


如果你希望它按点 ID 排序,从大到小,试试这个:

val sortedArray = loWinArray.sortedByDescending { item -> item.admin.first().id.toInt() }

推荐阅读