package programmers;
import java.util.Arrays;
class Solution {
public int solution(int[] num_list, int n) {
return Arrays.stream(num_list).anyMatch(i -> i == n) ? 1 : 0;
}
public int old_solution(int[] num_list, int n) {
int answer = 0;
for(int i = 0; i < num_list.length; i++){
if(n==num_list[i]){
answer = 1;
}
}
return answer;
}
}
이러한 코드는 스트림을 사용 시에 배열 반복하는 것과 별로 차이가 없다.
그런데 스트림을 사용한 코드는 더 간결하고 함수형 스타일로 작성되었으며, 내부적으로 최적화된 연산을 수행할 수도 있다고 하니까 쓰긴 하는데, 사실 반복문을 사용한 코드도 성능적으로 큰 문제가 없다면 충분히 효율적이라고 한다.
그래도 코드의 가독성과 유지보수 용이성을 고려하여 스트림을 사용한 코드를 선호하는 경향이 있다고 한다.
나는 그냥 스트림으로 쓸 수 있는 건 스트림으로 하고 (사실 전체를 다 스트림으로 바꿔도 될 거 같지만), 회사용 코드는 주석 한줄씩 한라인씩 다는 경우에는 반복문 돌리려고 한다. (코드에 주석 없으면 힘든 어른)
댓글
댓글 쓰기