1

我有一个从 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
}

我怎样才能做到这一点?

4

3 回答 3

1

您可以为此使用简单的扩展功能:

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

它可以像这样使用:

list.swap(0, 1)
于 2021-11-12T03:13:15.293 回答
0
val temp = movieList[0]
movieList[0] = movieList[1]
movieList[1] = temp
于 2021-11-12T01:30:28.363 回答
0

我认为您可以使用also范围功能进行交换

movieList[0] = movieList[1].also { movieList[1] = movieList[0] }
于 2021-11-12T02:01:33.420 回答