본문 바로가기

JAVA

스트림6 peek() 스트림소모 없이 요소 조회

peek() 스트림소모 없이 요소 조회

Stream<T> peek(consumer <? super T> action)

//peek은 중간연산 스트림 요소 소모없이 각 요소에 action 적용

 

void forEach(consumer <? super T> action)

//forEach는 최종연산 스트림을 소비하여 각 요소에 action 적용

 

peek은 작업중간중간 stream을 확일할때 사용

fileStream.map(file::getName) //Stream<file> -> Stream<String>

.filter(s -> s.indexOf(".") != -1) //확장자가 없는것 제외

.peek(s -> system::pringln("fileName" + s)) //파일명 확인

.map(s -> s.subString(s.indexOf('.') +1)) //확장자만 추출

.peek(s -> system::pringln("extention" + s)) //확장자 확인

.forEach(s -> system::pringln("fileName" + s))