【发布时间】:2021-12-03 04:34:56
【问题描述】:
我正在尝试使用RecyclerView 显示排序信息。为此,我有一个自定义数据类型的ArrayList。我想使用ArrayList 中的字段之一按降序对ArrayList 中的数据进行排序。我熟悉已经可用的方法(sortWith、sortBy、sortByDescending 等),但不幸的是,它们都从ArrayList 更改为List,这使回收站视图无法正常工作。理想情况下,我想保留 ArrayList,因为我需要它用于稍后在项目中执行的其他流程。
我想要达到的目标:
输入:arrayListName = ArrayList<CustomType>
过程:[按arrayListName.firstName的降序排序]
输出:return ArrayList<CustomType>
我尝试将List(如下所示)转换为ArrayList,但这会引发以下错误:
java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
抛出错误的代码行(我尝试了各种方法,但它们都在该行抛出异常):
val sortedModel = model.sortedWith(compareBy { it.name}) as ArrayList<Model>
任何帮助表示赞赏(:
我对 java 解决方案也很满意,因为我理解它并且可以轻松地从 java 实现到 kotlin。
【问题讨论】:
-
老实说,如果我们有您使用的产生该错误的代码,那将很容易为您提供帮助。
-
确保导入类型匹配,
java.util.Arrays$ArrayList,与java.util.ArrayList -
@LouisWasserman 我已经在最后添加了代码行(:
-
@GayanWeerakutti 我实际上并没有进口任何东西。我应该进口吗?