스트림은 파라미터로 제공되는 함수function<T, R> 관련된 함수형 인터페이스를 적용해서 기존 요소를 새로운 요소로 Mapping
기존 값을 변경한다는 개념보다는, 새로운 값을 만든다.
즉, 변환에 매핑이라는 단어

Map 메서드는 경국 자기 자신 타입의 스트림을 반환.
일반 스트림에서는 Function<T,R> 이 사용, T는 변환 전, R은 변환후
1.mapToInt

-> ToIntFunction이라는 인터페이스의 이름에서 알수 있듯, Function<T,R>에서 T만 제네렉, R은 int
-> 다른 기본형 특화 스트림에서는 LongToIntFunction나 DoubleToIntFunction을 파라미터로 전달한다.
-> 인터페이스에서 알수 있듯 T는 long & double R은 int로 정해짐 (제너릭 타입을 받지 않음)
2.mapToLong

-> 스트림을 LongStream으로 변환
-> LongStream을 제외한 모든 스트림에서 동일하게 제공
3.mapToObj

-> 기본형 특화 스트림을 Stream으로 변환
-> IntStream에서 mapToObj를 살펴본 내용인데 IntFunction를 파라미터로 받는다.
-> 기본형 특화 스트림의 종류에 따라 LongFunction, DoubleFunction 사용
-> 인터페이스의 이름에서 알듯 Function <T,R>에서 T가 int, long, double