스파 스 ID가있는 엔티티의 두 정렬 된 스트림이 주어집니다.프로젝트 - 리액터를 사용하여 왼쪽 외부 조인 두 개의 정렬 된 스파 스 시퀀스
Flux<Long> stream1 = Flux.fromArray(new Long[] {1L, 3L, 4L, 5L, 6L});
Flux<Long> stream2 = Flux.fromIterable(List.of(1L, 2L, 3L, 4L, 6L, 7L));
SQL의 내용을 FULL OUTER JOIN이라고하는 파이프 라인을 작성하는 함수를 구현하십시오. 결국 다음 코드를 호출 할 수 있도록 :
public static Flux<Map.Entry<Long, Long>> fullOuterJoin(Flux<Long> stream1, Flux<Long> stream2) {
}
fullOuterJoin(stream1, stream2).log().subscribe();
은 다음과 유사한 결과를 생성합니다 : .join()가 사용될 수 있는지 알고하지 마십시오
onSubscribe(...)
request(...)
onNext(1=1)
onNext(null=2)
onNext(3=3)
onNext(4=4)
onNext(5=null)
onNext(6=6)
onNext(null=7)
onComplete()
를) (.ZIP 시도 그러나 ID로 맵핑하지 않고 시퀀스의 첫 x 째 엘리먼트가 부족하면 정지합니다. 나도 알아 .bufferUntil() 사용할 수 있지만 일부 다른 옵션을 찾고, 선호하는 일부 기본 지원이 누락되었습니다. 효율적으로 구현하는 방법에 대한 아이디어는 언제나 환영합니다.