Java

자바 스트림 - 예제 1

grove1212 2025. 1. 22. 21:25

예제를 통해 자바 스트림의 활용 예를 배워보겠다.

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();
    }
}
  1. rangeClosed
    범위를 제한한다.
  2. allMatch
    조건을 만족하는 정수만 IntStream에 남긴다.
  3. Boxed
    IntStream -> Stream로 변환
  4. collect(Collectors.toList())
    List로 모은다.
  5. 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