有谁知道如何现在使用 swap() 方法 sn kotlin?因为它向我展示了一个错误,即没有这样的方法

Does anyone know how to use swap() method now sn kotlin? Because it shows me an error that there is no such method

提问人:Евгения Полищук 提问时间:9/6/2023 最后编辑:brootЕвгения Полищук 更新时间:9/10/2023 访问量:46

问:

有谁知道如何现在使用 swap() 方法 sn kotlin?因为它向我展示了一个错误,即没有这样的方法。

在此处输入图像描述

试图在我的代码中复制此代码。看到了很多如何重写这个的例子,但这是一个关于如何搜索错误的练习(这里是列表的大小和 if 循环),但现在我需要的不是一个错误,我有 2 个

版主更新:

问题的作者在评论中提供了以下代码:

fun main() {
    val list = listOf(5, 3, 6, 7, 9, 1)
    sortlist(list)
    println(list)
}

private fun sortlist(list: List<Int>) {
    for (i in 0..list.size -1) {
        for(j in 0.. list.size - 2) {
            if (list[j] > list[j + 1] ) {
                Collection.swap(list, j, j + 1)
            }
        }
    }
}
Android 循环 Kotlin android-studio 方法

评论

0赞 Tenfour04 9/6/2023
请将您尝试过的自己代码的文本粘贴到您的问题中。请文字,而不是图片。
0赞 broot 9/6/2023
即使在您的图片中,也没有红色下划线。当您尝试构建应用程序时,它是否显示错误?到底是什么错误?swap()
0赞 Tenfour04 9/6/2023
@broot他们说这是他们试图复制的代码。
0赞 bylazy 9/6/2023
也许你忘了?import java.util.Collections
0赞 Евгения Полищук 9/9/2023
@broot val list = listOf(5, 3, 6, 7, 9, 1) sortlist(list) println(list) } private fun sortlist(list: List<Int>){ for (i in 0..list.size -1){ for(j in 0.. list.size - 2){ if (list[j] > list[j + 1] ){ Collection.swap(list, j, j + 1) } }

答:

0赞 broot 9/10/2023 #1

显然,您在复制代码时犯了一个错误。在图像中包含的原始代码中,函数名称为:,这是正确的名称。在注释中提供的代码中,它是:。你错过了一个字母“s”,这可能是你问题的原因。Collections.swap()Collection.swap()

0赞 Manishoaham 9/10/2023 #2
Collections.swap(mutableList,i,j) 

方法需要可变列表才能交换其元素。请确保为此方法提供可变列表。根据您的代码,看起来您正在传递不可变列表。