【发布时间】:2019-04-06 23:03:56
【问题描述】:
我有一个正在读取成分列表的应用。至此,我已经检索了 2500 种最常见成分的列表。所以我有一个列表,比如 10 种成分作为字符串,以及 2500 种成分的列表,包括名称和其他属性。如果此字符串列表中的成分与成分列表中的成分名称匹配,我想将其添加到另一个列表第三列表中,即存在的成分。我知道如何做到这一点的唯一方法基本上是使用 for 循环。
我会这样做
fun compareLists(listOfIng: List<String>): List<ListIngredientsQuery.Item> {
var returnList = mutableListOf<ListIngredientsQuery.Item>()
for (ing in listOfIng) {
for (serverIngredient in MyApp.metaIngredientList!!) {
if (serverIngredient.name() == ing) {
returnList!!.add(serverIngredient)
}
}
}
return returnList
}
这在技术上可行,但我不得不想象有一种更好、更快的方法,而不是迭代 2500 多个项目,其次数与成分列表中的成分一样多。真正的开发人员喜欢什么样的,合适的,这样做的方式。
【问题讨论】: