정수 n
이 매개변수로 주어질 때, n
이하의 홀수가 오름차순으로 담긴 배열을 return
하도록 solution
함수를 완성해주세요.
n | result |
---|---|
10 | [1, 3, 5, 7, 9] |
15 | [1, 3, 5, 7, 9, 11, 13, 15] |
입출력 #1
10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return
합니다.
입출력 #2
15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return
합니다.
import java.util.ArrayList;
class Solution {
public int[] solution(int n) {
ArrayList<Integer> answer = new <Integer>ArrayList();
for(int i = 1; i <= n; i++){
if(i % 2 != 0){
answer.add(i);
}
}
return answer.stream().mapToInt(Integer::intValue).toArray();
}
}
.stream()
: 목록에서 요소의 순차적인 '스트림'을 얻기 위해 '목록' 또는 모든 '컬렉션'에서 호출됩니다.
mapToInt(Integer::intValue)
: '스트림'의 각 요소를 정수로 변환하는 데 사용함. 이 경우 intValue()
메서드를 사용하여 각 Integer 객체를 기본 int 값으로 변환함. Integer::intValue
는 Integer 클래스의 intValue 메서드를 참조하는 메서드 참조임.
.toArray()
: 이 터미널 작업은 스트림의 요소를 배열로 변경함.
lterator
처럼 일회용이다. (필요하면 다시 스트림을 생성해야 함)Short Circuit
메소드를 사용해서 제한할 수 있다.).parallel
)IntStream
, LongStream
, DoubleStream
등 제공Stream<Integer>
대신에 IntStream
을 사용하는게 더 효율적이다.Stream<T>
보다 더 많이 제공한다.(.sum()
, .averge()
등)