首页 > 解决方案 > 如何在 Kotlin 中对包含双值的数组进行排序?

问题描述

我有以下类型的数组,

val mArrayList: ArrayList<String> = ArrayList()
mArrayList.add("10-12 YRS")
mArrayList.add("2-3 YRS")
mArrayList.add("4-5 YRS")
mArrayList.add("7-10 YRS")
mArrayList.add("5-7 YRS")

我有上述类型的 ArrayList,我想对这个 ArrayList 进行排序。如何对这种数组进行排序?有人可以帮忙吗?

标签: sortingkotlin

解决方案


在 Kotlin 中,您可以使用sortedBy/sortBy方法对此类列表进行排序。第一个返回一个已排序的新列表,第二个对接收者列表进行就地排序。

您传递给它的 lambda 允许您提取要用于比较的值。

例如,您可以使用它来按元素中的第一个整数排序:

val sorted = mArrayList.sortedBy { it.split("-").first().toInt() }

或者,如果您想对列表进行适当的排序:

mArrayList.sortBy { it.split("-").first().toInt() }

在这两种情况下,it.split("-").first().toInt()将字符串分成两部分(破折号之前和之后),并将第一部分转换为整数(可比较)。


推荐阅读