새로운 java8 스트림에 대한 연구를하고 있습니다.자바에서 튜플을 생성하기위한 생성기를 사용하십시오.
I는 특정 특성 튜플 무한 스트림을 생성해야
튜플 세 int
값 a
, b
및 c
있을 것이다.
a
가 나는 TupleFactory
을 만들어 계산하는 필터를 사용하는 것이
for (int c = 1;; c++) {
for (int b = 1; b < c; b++) {
...
}
}
:
곳 b
및 c
단지와 for
루프에서 만들 수있는 카운터입니다
class TupleFactory {
private static int b = 1;
private static int c = 1;
public static Tuple next(){
if (b >= c - 1)
c++;
else
b++;
return new MyTuple (1,b,c);
}
}
다음으로 Stream<Tuple>
을 생성하고 싶습니다. 로 :
람다 식의 서명이 내가 공급자를 정의하는 선에서 기능 인터페이스 방법
get()
의 서명과 일치하지 않습니다 ... :
Supplier<Tuple> anyTuple = s -> TupleFactory.next();
Stream<Tuple> result = Stream.generate(anyTuple);
내가 얻을
실마리가 있습니까?
의, 하나의 기반 인덱스를 사용하는 아주 나쁜 매너로 간주된다는 점에 유의하시기 바랍니다. 좋은 신사는 항상 0부터 시작하는 색인을 사용합니다. –
고마워, 나도 알아,하지만 문제는 명시 적으로 조건을 만족하지만 모든 제로 솔루션을 금지합니다. –
도움이 될 수있어서 기쁩니다! –