Итак, у меня есть интересная проблема с фильтрацией коллекций, у меня есть класс данных следующим образом:
data class Route(
val id: Int,
val name: String,
val weeklyPrice: Double?,
val monthlyPrice: Double?,
val seasonalPrice: Double?,
)
Я отображаю ArrayList в пользовательском интерфейсе, и у пользователя есть возможность фильтровать список на основеОтносительно того, имеет ли маршрут «недельные / ежемесячные / сезонные» цены, имейте в виду, что я использую флажки, а не переключатели, чтобы пользователь мог фильтровать, используя несколько вариантов.то есть.только еженедельно, или еженедельно, и ежемесячно и т. д.
Моя проблема в том, что с помощью функции фильтра и предиката я могу фильтровать только по одному атрибуту за раз, например:
routes.filter {
it.weeklyPrice != null
}
Но иногда я фактически отфильтровал бы значения, которые хотел бы сохранить, основываясь на другом условии, например, пользователю не нужны маршруты с недельными ценами, поэтому я отфильтровываю их, но ему нужны месячные, но некоторые из них былиуже отфильтрованы на основании того факта, что у них также были недельные цены.
Любая помощь будет оценена, я уверен, что это можно сделать, я просто не понял, как, может быть, проблема в том, какданные представлены в первую очередь?Я не уверен.
Большое спасибо заранее.