
정수 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() 등)