#android #kotlin
#Android #котлин
Вопрос:
У меня есть два списка master и vehicleFareData.
VehicleFareData имеет два поля: id и vehicleFare. Мастер имеет несколько полей, включая id,стоимость транспортного средства.
Теперь я хочу заменить поле vehicleFare в master на vehicleFare в списке vehicleFareData, где идентификатор master равен идентификатору VehicleFareData
Каков наилучший способ добиться этого в Kotlin
fun getMasWithVehicleFare(fareCalculation: FareCalculation, mas: ArrayList<Driver_Available>): ArrayList<Driver_Available> {
for (vehicleData in fareCalculation.vehiclesPricingData) {
mas.find { it.mid == vehicleData.driverID }!!.fare = vehicleData.fare
}
return mas
}
это правильный способ?
Комментарии:
1. добавьте некоторый код из того, что вы пробовали до сих пор
2. я добавил код
Ответ №1:
Ваш код довольно хорош, хотя он может дать сбой, если вы не найдете элемент из vehicleData
в mas
, но вы можете улучшить потребление процессорного времени для поиска объектов, используя Map
вместо ArrayList
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map/index.html
Коллекция, которая содержит пары объектов (ключей и значений) и поддерживает эффективное извлечение значения, соответствующего каждому ключу
Я думаю, что ваша проблема скорее связана с использованием хорошего типа коллекции, а не с написанием хорошего алгоритмического кода, что вполне нормально из того, что я прочитал, что вы написали