JAVA

IntStream.rangeClosed(1,20).asLongStream().mapToObj 에 대한 해석

제뉴어리맨 2021. 1. 14. 19:26

- 소스

 

List<SampleDTO> list = IntStream.rangeClosed(1,20).asLongStream().mapToObj(i-> {
SampleDTO dto = SampleDTO.builder()
.sno(i)
.first("F")
.last("Last.."+i)
.regTime(LocalDateTime.now())
.build();
return dto;
}).collect(Collectors.toList());

 

 

 

IntStream.rangeClosed(1,20) => 1~20의 Int를 발생시킴.

.asLongStream() => 1~20으로 발생되는 Int를 Long으로 변환 시킴

.mapToObj() => 나오는 스트림(Long)을 Obj형태로 반환, 그러나 여기서는 매개변수로 "i-> {}" 이런식의 람다식을 사용하였기 때문에 i를 사용하여 진행되는 람다식? 람다함수? ({}안에 내용)의 결과를 Obj형태로 변환을 의미

.collect(Collectors.toList()); => 그렇게 20개의 dto가 Obj 형태로 나온것을 Collectors를 이용하여 List의 형태로 모은다

 

 

 

 

 

 

 

5.3 asDoubleStream(), asLongStream(), boxed() 메소드

  asDoubleStream() 메소드는 IntStream의 int 요소 또는 LongStream의 long 요소를 double 요소로 타입 변환해서 DoubleStream 을 생성합니다.

 

  마찬가지로 asLongStream() 메소드는 IntStream의 int 요소를 long 요소로 타입 변환해서 LongStream을 생성합니다. 

 

  boxed() 메소드는 int, long, double 요소를 Integer, Long, Double 요소로 박싱해서 Stream을 생성합니다.

 

출처: https://jang8584.tistory.com/237 [개발자의 길]