循环循环组合列表需要时间kotlin

时间:2019-11-13 07:15:31

标签: android kotlin

在Kotlin中,双循环需要很多时间。我有一个单词列表(有时列表包含100k +个单词)。我想在我的产品列表中搜索包含单词的列表。如何改善以下代码?如果单词组合增加,则会引起错误。

private fun getProductListFromCombinations(combination:List<String>): List<ProductEntity> {
    val arrayList=  mutableListOf<ProductEntity>()


        for (comb in combination){

            val searchedList = listAllProduct.filter {

                    obj -> obj.name.contains(comb,true)

            }

            arrayList.addAll(searchedList)

        }



    return arrayList.distinct()
}

1 个答案:

答案 0 :(得分:1)

private fun getProductListFromCombinations(combination: List<String>): List<ProductEntity> {

    return listAllProduct.filter { productEntity ->

        combination.any { it.contains(productEntity.name, true) }
    }
}

希望获得帮助。