如何在 Kotlin 中交换 MutableList 中的元素?

Has*_*tay 5 list kotlin mutablelist

我有一个包含从 api 提取的数据的列表。但是,我需要对此列表(movieList)进行更改。我需要将索引 0 处的元素与索引 1 处的元素交换。例如:

列表[0] = 电影A,
列表[1] = 电影B

然后

列表[0] = 电影B,
列表[1] = 电影A

我打算执行这些操作的类如下:

data class MovieListDto(
    val docs: List<Movie>,
    val limit: Int,
    val offset: Int,
    val page: Int,
    val pages: Int,
    val total: Int
)

fun MovieListDto.MovieListDtoToMovieList(): List<Movie> {
    val movieList = mutableListOf<Movie>()

    for (movie in docs) {
        if (movie._id == "5cd95395de30eff6ebccde5c" ||
            movie._id == "5cd95395de30eff6ebccde5b" ||
            movie._id == "5cd95395de30eff6ebccde5d"
        ) {
            movieList.add(movie)
        }
    }
    return movieList
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

bir*_*eee 8

您可以使用一个简单的扩展函数来实现:

fun <T> MutableList<T>.swap(index1: Int, index2: Int){
    val tmp = this[index1]
    this[index1] = this[index2]
    this[index2] = tmp
}
Run Code Online (Sandbox Code Playgroud)

它可以像这样使用:

list.swap(0, 1)
Run Code Online (Sandbox Code Playgroud)