본문 바로가기
Language/Java

자바 Stream int float double로 반환방법

by wakestand 2021. 10. 27.
반응형

자바에서 스트림(Stream)을 사용할 경우

집계 메소드인 count를 사용해주면

반환형이 Long인 것이 보이는데

이걸 int / Float / Double 로 받아주고 싶다면

 

mapToInt > sum 순으로 사용해주면 되는데

 

1. .mapToInt(n -> 1)

스트림에 걸린 대상을 1로 변경

 

2. .sum()

모든 대상의 합계를 구함(1+1+1+1)

 

위 방법으로 .count는 Long만을 반환하지만

int 타입의 1로 만들어버린 후

모두 계산해서 int로 던지는 식으로 사용할 수 있다

 

Float / Double의 경우에는

mapToInt를 mapToFloat / mapToDouble 로 바꿔주면 된다

 

예제에 사용한 코드는 아래와 같다

 

        String[] arr = {"A", "B", "C", "A"};
        int count = Arrays.asList(arr).stream()
                                      .mapToInt(n -> 1)
                                      .sum();
        System.out.println("count : " + count);
반응형

댓글