如何在 Kotlin 中进行线性搜索和检索对象?

How to do linear search and retrieve object in Kotlin?

所以我有一个 ArrayList<MovieDetailEntity>,其中包含一个名为 MovieDetailEntity 的数据 class。在数据 class 中,我有一个电影 ID,它对每部电影都是唯一的。我正在尝试通过线性搜索检索对象中的其余属性。

所以目前我有这些功能:

private fun getMovieDetails():ArrayList<MovieDetailEntity>{
    return DetailDataDummy.getMovieDetail()
}

fun getDetailsById(movieId: String):MovieDetailEntity{
    val details = getMovieDetails()
    var detailEntity: MovieDetailEntity
    for (item in details){
        if (movieId == item.movieId){
            detailEntity = item
            break
        }
    }
    return detailEntity
}

我正在尝试在 ID 匹配时在 fun getDetailsById(movieId: String) 中返回整个对象。我怎样才能做到这一点?

Kotlin 的标准库提供了很多函数来完成这样的标准任务,而无需编写 for 循环。在这里你可以做

fun getDetailsById(movieId: String): MovieDetailEntity {
    return getMovieDetails().first {
        it.movieId == movieId
    }
}

请注意,如果找不到这样的项目,这将崩溃。要不崩溃但允许可为空的 return 使用 firstOrNull.