이전 학습 내용

스트림 학습 1

SigLee0505 2023. 1. 12. 21:33

오늘을 작성할 내용은 stream을 활용해 보기

 

스트림이 좋고 재밌고 사용을 잘 하면 있어보이는 등등 엄청난 효과를 가지고 있지만 기본서에는 아주 간단한 내용만을 포함하고 있다.

 

또 한 많은 메서드를 가지고 있다.

 

JAVA의 다른 부분을 배울 때는 쉽게 메서드를 찾아서 사용했었는데 스트림은 뭔가 조금 어렵다? 라는 생각이 들었다.

 

이게 익숙하지가 않아서 그런건지...

 

그래서 조금 스트림을 활용해보기 위해 노력하려고한다.

 

구구단만을 이용해 홀수 의 구구단 출력을 해라

 

 

        IntStream.range(2,10)
                .filter(num -> num % 2 == 1)
                .forEach(num ->{
                    IntStream.range(1,10).forEach(
                            index -> System.out.println(num + "*" + index + "=" + num * index)
                    );
                } );

어쩌다 보니 메서드만 작성하게 되었다.

 

 

피드백 받은 점

1. 위의 문제는 flatMap을 이해하기 위해 사용한 것

2. 데이터의 가공 처리는 forEach 에 도달하기 전에 완성해라

 

 

 

알게 된 점

1. forEach() 내에는 forEach 문을 사용할 수 있다.

 

2중 for문을 생각해보면 쉽지만 생각하는데 오랜 시간이 걸렸다.

 

2. range는 끝 범위 값을 나타내지 않는다.

 

위의 내용들은 다 기초적인 것이라고 생각한다. 또한 기본서에서도 봤던 것 같다.

스트림을 충분히 이해했다고 생각했었는데 아직 응용은 조금 어려운 것같다.

 

3. 가급적이면 가공 처리는 forEach 를 들어가기 전에 끝내라!

 

4. flatMap 을 잘 활용해라 

flatMap 은 데이터를 평평하게 만든다는 의미

데이터를 평평하게 펴는 느낌 정도라고 이해하면 된다. 하지만 이걸 보고 끝낼 수 있나?

기본서를 찾아 봤다.