sorting - 如何在 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 进行排序。如何对这种数组进行排序?有人可以帮忙吗?
解决方案
在 Kotlin 中,您可以使用sortedBy
/sortBy
方法对此类列表进行排序。第一个返回一个已排序的新列表,第二个对接收者列表进行就地排序。
您传递给它的 lambda 允许您提取要用于比较的值。
例如,您可以使用它来按元素中的第一个整数排序:
val sorted = mArrayList.sortedBy { it.split("-").first().toInt() }
或者,如果您想对列表进行适当的排序:
mArrayList.sortBy { it.split("-").first().toInt() }
在这两种情况下,it.split("-").first().toInt()
将字符串分成两部分(破折号之前和之后),并将第一部分转换为整数(可比较)。
推荐阅读
- boost-geometry - 提升计算距离(各种几何)
- angular - 如何编译包含角度表达式的动态 html
- python - 从列表中提取不同布局的项目
- powershell - 如何使用 PowerShell 捕获全局击键?
- javascript - 在 Google Colab html 中导入外部 JS 脚本
- javascript - Particles.js 在 .NET Core 中无法正常工作
- scala - 如何使用 spark 中的 sc.textfile("") 方法读取位于服务器中的文本文件
- haskell - 从评估级别访问 GADT 约束
- react-native - 如果不是全屏,则 React Native Youtube 视频不会播放
- c# - Microsoft Teams 中的模拟