// there are three elements in profileSource
// Profile(1, "Aris")
// Profile(2, "Bob")
// Profile(3, "Cathy")
Flux.fromArray(new int[]{1, 3})
.zipWith(profileSource,
/* a lambda to match id and profile */ )
.map( /* tuple.t1 is ID, tuple.t2 is Profile */ )
Внутри лямбда оператора карты, я надеюсь, что я могу получить два кортежа, один для Ариса и один для Кэти, каждый кортеж имеет идентификатор и профиль.
Я могу просто реализовать соператоры 'filter' и 'sort', но я хотел бы знать, есть ли лучший подход.
profileSource
.filter( /* p.id == 1 or 3 */ )
.sort( /* order by id */ )
.zipWith(Flux.fromArray(new int[]{1, 3})
.map( /* get expected tuple */ )