코딩테스트

Stream 코딩테스트 단골 치트키 3선

데메즈 2026. 7. 9. 20:25
반응형

★ Stream 이란★

배열이나 리스트 같은 데이터 뭉치들을 공장의 '컨베이어 벨트'위에 차례대로 올려놓고

원하는 가공(필터링, 변환)을 거쳐 최종 정답 파일로 만들어내는 기술

 

1. ArrayList<Integer> 를 일반 int[ ] 배열로 바꾸기

//기존 방식
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
	answer[i] = list.get(i);
}
return answer;

// Stream 방식
return list.stream().mapToInt(i -> i).toArray();

.stream() : 리스트를 컨베이어 벨트에 올린다

.mapToInt(i -> i) : 안에 든 Integer 객체들을 순수한 숫자 (int) 로 정렬시킨다

.toArray() : 최종 결과물을 일반 배열로 포장한다

 

2. 조건에 맞는 데이터만 걸러서 리스트로 만들기 (filter)

// 배열에서 짝수만 골라서 리스트로 담고 싶을때
int[] arr = {1,2,3,4,5};

List<Integer> evens = Arrays.stream(arr)
							.filter(i -> i % 2 == 0)
                            .boxed() // int를 Integer로 변환
                            .collect(Collectors.toList());

 

3. 배열 안의 모든 값 변환하기 (map)

// 배열의 모든 숫자에 X2 한 배열을 새로 만들고 싶을 때
int[] arr = {1,2,3};

int[] doubled = Arrays.stream(arr)
					  .map(i -> i * 2)
                      .toArray();
// 결과 : [2,4,6]
반응형