java stream에서 maptoobj 함수는 중간 연산이라 되어 있습니다. 길이 n짜리 배열을 obj object n개로 채우려고 합니다. obj 클래스에는 int 자료형만 하나 있고, 우리는 이 n개의 obj가 깊은 복사가 되어야 해요. 이걸 stream을 써서 할 때, Intstream의 range 메서드와, maptoObj를 사용하면 손쉽게 처리할 수 있습니다. mapToObj 메서드를 봅시다. Intstream 뿐만이 아니라, Longstream과 DoubleStream에도 있습니다. 설명을 보면, 스트림으로부터 해당 함수를 적용한 객체 값들의 stream을 반환한다고 되어 있어요. 즉 입력 스트림으로부터 무언가를 받아서, 새로운 결과 가지고 있는 스트림으로 변환합니다. n개의 크기를 가진 리..
Stream 검색 결과
안녕하세요. 이번 시간에는 java stream의 filter에 대해 알아봅시다. 먼저, filter는 stream을 리턴하는데요. predicate에 match가 되는 원소들로 이루어진 무언가를 리턴합니다. 조건에 매치되는 필터를 적용한 무언가를 리턴한다. 정도로 생각하시면 편할 듯 싶어요. 예제를 하나씩 보겠습니다. 7번째 줄부터 11번째 줄까지 봅시다. 보시면, mapToInt로 들어오는 stream으로부터, valueOf를 적용하는 Intstream을 리턴해요. 다음에, 필터를 태우는데요. k -> k%2 != 0인 걸로 보아서는 홀수만 뽑아오겠다는 필터임을 알 수 있어요. 그리고 boxed는 박싱을 하는 stream을 리턴해요. 최종 연산으로 toList를 호출하는데요. 결과를 List로 뽑아옵..
클린 코드를 스터디 하면서 제가 이전에 짠 코드들을 리팩토링 하고 있는데요. 제가 출제한 문제인 22232번은 코딩 테스트에 꽤 나오는 유형입니다만, 제가 코드를 깔끔하게 짜지 않은 탓에 스터디 재료가 되고 말았습니다. 스터디를 하다가 스트림과 람다에 대해서 오갔는데요. 다른 분의 코드를 보다가, 입력 부분을 Intstream과 range 등을 이용해서 깔끔하게 처리할 수 있다는 것을 보고 놀랐습니다. 사실 이전에도, 한 분이 기여를 해 주셔서 스트림과 람다의 존재는 알고 있었지만, 신세계였습니다. 심지어, String을 Integer로 변환하는 작업도 Stream을 잘 이용하면 잡스러운 로직들을 간결하게 짤 수 있다는 걸 보고 너무 놀랐습니다. 아무튼, 코드를 분석해 보면서 배운 점이 많았는데요. 그 ..
최근댓글