"最初的回答"
当我执行以下操作时:
我预计它会首先打印
当我执行以下操作时:
val array = arrayListOf<String?>(null, "hello", null)
array.sortBy { it == null }
println(array)
我预计它会首先打印
null
值,因为那是我指定的选择器。然而,println(array)
返回[hello, null, null]
。
这是为什么呢?
Translated:
{ it != null }
会将非空值放在一起,但顺序是不确定的。(在这种情况下只有一个值,所以不明显。)我建议使用{ it ?: "" }
,它会对每个项进行排序,将空值(和任何空字符串)放在首位。 - gidds