예제를 통해 자바 스트림의 활용 예를 배워보겠다.
import java.util.*;
import java.util.stream.*;
class Solution {
public int[] solution(int l, int r) {
// 1) l부터 r까지 모든 정수에 대해 Stream 생성
List<Integer> filtered = IntStream.rangeClosed(l, r)
// 2) 각 정수 num을 문자열로 바꾼 후,
// 모든 문자가 '0' 또는 '5' 인지 확인
.filter(num -> String.valueOf(num)
.chars()
.allMatch(ch -> ch == '0' || ch == '5'))
// 3) 조건을 만족하는 정수만 IntStream에 남긴다
.boxed() // IntStream -> Stream<Integer> 로 변환
.collect(Collectors.toList()); // List<Integer>로 모은다
// 4) 조건을 만족하는 수가 없다면 [-1], 있으면 배열로 변환하여 반환
return filtered.isEmpty()
? new int[] {-1}
: filtered.stream().mapToInt(Integer::intValue).toArray();
}
}
- rangeClosed
범위를 제한한다. - allMatch
조건을 만족하는 정수만 IntStream에 남긴다. - Boxed
IntStream -> Stream로 변환 - collect(Collectors.toList())
List로 모은다. - filtered.stream().mapToInt(Integer::intValue).toArray()
배열로 바꿔준다.
'Java' 카테고리의 다른 글
[Java] List를 배열로, 배열을 List로 변환하기 (0) | 2025.01.23 |
---|---|
Java에서 Array 객체 복사하는 방법 (1) | 2025.01.23 |
자바 스트림 예제 3 (0) | 2025.01.23 |
자바 스트림 - 예제 2 (0) | 2025.01.22 |
자바 스트림 (0) | 2025.01.22 |