기존에 새로운 가치를 추가하는 좋은 방법이 Stream
있습니까? 내가 상상할 수있는 것은 다음과 같다.
public <T> Stream<T> addToStream(Stream<T> stream, T elem ) {
List<T> result = stream.collect(Collectors.toList());
result.add(elem);
return result.stream();
}
그러나 나는 장황함없이 람다 표현에서 사용할 수있는 더 간결한 것을 찾고 있습니다.
PECS 원칙 을 구현하려고 할 때 또 다른 질문이 나타났습니다 .
public <T> Stream<? super T> addToStream(Stream<? super T> stream, T elem ) {
List<? super T> result = stream.collect(Collectors.toList()); //error
result.add(elem);
return result.stream();
}
와일드 카드가 작동하지 않는 것 같고 Stream.collect
이유가 궁금합니다. 미리 감사드립니다.
List
반환 된다는 보장은 없습니다. 대신 사용할 목록 유형을 선택할 수 있습니다.collect(Collectors.toList())
add
Collectors.toCollection