如何在Kotlin中基于getTitleFromCode返回值对MyUser列表按字母排序?
按转换后标题排序的实现方法
核心思路是利用Kotlin集合的排序函数,以getTitleFromCode返回的标题作为排序依据,实现字母顺序排序。
- 生成新排序列表(原列表不变)
如果你的myList是不可变List,使用sortedBy函数返回新的排序后列表:
val sortedList = myList.sortedBy { getTitleFromCode(it.nameCode) }
sortedBy会基于每个元素对应的标题进行自然字母顺序排序,原列表保持原样。
- 原地修改排序(适用于可变列表)
如果myList是MutableList,可以用sortBy直接修改原列表的顺序:
val myMutableList: MutableList<MyUser> = mutableListOf() myMutableList.sortBy { getTitleFromCode(it.nameCode) }
如果原列表是不可变类型但需要转换后原地排序,可先做类型转换(注意空安全):
(myList as? MutableList<MyUser>)?.sortBy { getTitleFromCode(it.nameCode) }
- 大小写不敏感的排序
如果需要忽略大小写进行字母排序,可将标题转为小写(或大写)后再排序:
val sortedListIgnoreCase = myList.sortedBy { getTitleFromCode(it.nameCode).lowercase() }
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

