У меня есть приложение, которое читает список ингредиентов.На данный момент я уже получил список из 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 элементов, столько раз, сколько ингредиентов в списке ингредиентов.Каков подобный, правильный, предпочтительный для настоящих разработчиков способ сделать это.