반응형
★ 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]반응형
'코딩테스트' 카테고리의 다른 글
| DFS 공부 (0) | 2026.07.09 |
|---|---|
| [프로그래머스/Java] 의상 (0) | 2026.07.09 |
| [프로그래머스/Java] 개인정보 수집 유효기간 (split 개념) (0) | 2026.07.09 |
| [프로그래머스/Java] 크레인 인형뽑기 게임 (Stack 개념+이중배열) (0) | 2026.07.08 |
| [프로그래머스/Java] 키패드 누르기 (0) | 2026.07.08 |