[검색] 공부하기/JAVA

IntStream & forEach 이해하기

Ben의 프로그램 2023. 7. 13. 13:50
728x90
IntStream 사용법

공부를 하다가 위와 같은 코드를 만났다. IntStream 은 처음 만나서 구글링을 해보았다. IntStream 은 자바의 기본(primitive) 정수 요소의 열을 만들거나 병렬 집계처리를 지원한다. 말이 어려운데 코드로 바로 확인해보자. 

 

forEach( )

forEach 함수는 for 와 같은 반복문을 처리할 때 사용하는 함수입니다. 

collection.forEach(변수 -> 반복처리(변수))

collection 에는 배열이나 리스트가 대입된 변수명을 지정합니다. forEach 함수는 람다식을 사용해서 작성하는데, :: 를 사용해서 작성하기도 합니다. 

list.forEach(System.out::println)

이런 형식으로 forEach 함수가 사용되기도 합니다. 

 

range( )

range( ) 는 정수 열을 만드는데, 종료 값을 포함하지 않는다. 

IntStream.range(0, 10).forEach(System.out::println);
IntStream.range(0, 10).forEach(i -> System.out.println(i));

위의 2가지 코드로 작성할 수 있으며 실행되면 0~10 이 아닌 종료 값을 제외한 0~9가 출력된다. 

 

rangeClose( )

rangeClose( ) 는 정수 열을 만드는데, 종료 값을 포함한다. 

IntStream.rangeClosed(0, 10).forEach(System.out::println);

위의 코드가 실행되면 0~10 이 출력된다.

 

sum( )

sum( ) 은 합계를 계산해 준다. 

System.out.println(IntStream.range(0, 10).sum());

0~9 까지의 합이 출력된다.

 

max( )

max( ) 는 최대값을 찾아준다.

System.out.println(IntStream.range(0, 10).max());

0~9 중 가장 큰 값인 9가 출력된다.

 

min( )

min( ) 는 최소값을 찾아준다.

System.out.println(IntStream.range(0, 10).min());

0~9 중 가장 작은 값인 0이 출력된다.

 

average( )

average( ) 는 평균을 구해준다.

System.out.println(IntStream.range(0, 10).average());

0~9 까지의 평균인 4.5가 출력된다.