관리 메뉴

제뉴어리의 모든것

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

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 [개발자의 길]

 

 

 

'JAVA' 카테고리의 다른 글

JAVA 함수형 인터페이스(Functional Interface)  (0) 2021.01.16
final에 대하여  (0) 2021.01.16
Interface 내의 default, static 메소드  (0) 2021.01.16
Thymeleaf란, 템플릿엔진이란 기타 등등  (0) 2021.01.14
어노테이션이란  (0) 2021.01.14