Похожие чаты

RxJava question. I have an Observable that emits big decimal numbers

(or integers, doen'st matter actually). And I have a threshold value defined at observable composition time. Threshold is not going to change during observable life time, in other words.
What I need is to filter out values that differ from the last passed one within the threshold. Or rephrase it: pass value downstream only if it differs from the last passed one more than the threshold.
Example:
Source observable values:
[5, 4, 7, 9, 15, 14, 13, 12, 11, 7, 3, 2, 1]

Filetered values with threshold = 3 :
[5, 9, 15, 11, 7, 3]

To illustrate it better, lets assume that it's temperature readings, for example. I wan't to filter only those values where temperature changes more than 3 degree. The very first value always passes and serves as an initial value to compare to. If for example first temperature reading was 21 Celsius and within and hour each subsequent reading was in [18..24] then none of those values should pass downstream. But as soon as it gets over those bounds it shoud be passed and create new bounds to compare to.

The question is: does anyone knows a way to do this with RxJava operators only? Or there's no other way besides storing state outside rx pipeline (in volatile or atomic reference or any other synchronized state, details don't matter) ?

1 ответов

20 просмотров
Dmytro-Buryak Автор вопроса

Nevermind, problem solved with Observable.scan operator.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
9
Карта сайта