У меня есть поток списка предметов (т.е. каждый выпуск - это список).Списки имеют разную длину.Мне нужен оператор (или несколько в комбинации), который может повторно сегментировать списки, чтобы каждый список имел одинаковую длину.
Вот простой пример с массивами.
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5};
int[] array3 = {6, 7, 8, 9};
Observable.just(array1, array2, array3)
.emitGroupsOf2() // <--- what operator can I use here?
.subscribe(ints -> {
// I want:
// emit {1,2}
// emit {3,4}
// emit {5,6}
// emit {7,8}
// complete
});
}
Inв этом примере я хочу «держаться до 3», пока не услышу 4;затем я хочу "держаться до 5", пока не услышу 6. Наконец, я хочу "выбросить" 9, поскольку у нас никогда не было другого значения для создания другой пары.
Я смотрел на map
иscan
и buffer
, но ни одна из них не работает правильно.