Я сделал combine флоу с данными из конфлэтед канала(asFlow), куда из UI пользователь отправляет тип сортировки. То есть он из обоих flow берет последние данные и сортировку и пересчитывавает все. Если данных приходит немного, то все ок. Но если данных очень много, offer в канал не присылает данные, видимо из-за того, что пул диспатчеоа перегружен. И оператор combine не получает актуальную сортировку.
Да не надо делать это на флоу, нужно просто обычный колбэк сделать, дешевле будет, но честно, сил нет писать весь код. Он не очень простой с учетом замены сортировшика, там надо результат кэшировать и сбрасывать кэш на замену
Да почему, сам flow как раз нормально для такого, особенно когда речь о комбинировании. Нужно что-то придумать с сортировкой, например, хранить сортированный результат + сортировать новый кусок данных а потом смержить эти 2 списка.
Если вы сделаете сегментацию, то да. Но в целом, повторюсь, вы делаете терминальную операцию - сортировку. После этого работать с Flow - очень странная идея
Если вы сделаете сегментацию, то да. Но в целом, повторюсь, вы делаете терминальную операцию - сортировку. После этого работать с Flow - очень странная идея
Просто логика того, что происходит при сортировке уже не описывается в терминах map-reduce, это просто большая сложная редукционная операция. Ее и надо делать отдельно
Я бы сделал сами данные, а рядом сортированный список - добавление элементов в него сильно дешевле, чем пересортировка. При замене сортировщика - сбрасываем и пересчитываем сортированный список из накопленных данных.
Я бы сделал сами данные, а рядом сортированный список - добавление элементов в него сильно дешевле, чем пересортировка. При замене сортировщика - сбрасываем и пересчитываем сортированный список из накопленных данных.
в принципе можно не держать отдельный массив, а перезаполнять новый сет из старого, но там надо тогда синхронизацию делать
у меня там LinkedHashMap сейчас, она за порядок отвечает. Часто надо по индексу искать объект, чтобы посмотреть какие поля изменились, и нужна ли вообще сортировка. Я поэтому и не стал брать SortedMap, что часто поиск нужен