어제 오늘 내일

[Java 기초] Arrays.stream()으로 배열을 스트림으로 변환하기 본문

IT/Java

[Java 기초] Arrays.stream()으로 배열을 스트림으로 변환하기

hi.anna 2025. 8. 22. 00:16

Java 8부터 도입된 Stream API는 데이터를 함수형 스타일로 처리할 수 있게 해줍니다.
배열을 스트림으로 변환하면, 반복문 없이도 필터링, 매핑, 집계 같은 작업을 간결하게 수행할 수 있습니다.
이를 가능하게 하는 메서드가 바로 Arrays.stream() 입니다.
이 메서드는 배열을 Stream API와 함께 활용할 수 있도록 변환하는 기능을 합니다.

 

1. 기본 사용법

Arrays.stream()은 배열을 Stream으로 변환합니다.

import java.util.Arrays;

public class StreamExample1 {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        Arrays.stream(numbers)
              .forEach(System.out::println);
    }
}

실행 결과

1
2
3
4
5

👉 배열을 스트림으로 바꿔서 바로 출력할 수 있습니다.

 

2. 합계 구하기

스트림을 활용하면 배열의 합계도 간단합니다.

import java.util.Arrays;

public class StreamExample2 {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        int sum = Arrays.stream(numbers).sum();
        System.out.println("합계: " + sum);
    }
}

실행 결과

합계: 15

 

3. 평균 구하기

import java.util.Arrays;

public class StreamExample3 {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};

        double avg = Arrays.stream(numbers).average().getAsDouble();
        System.out.println("평균: " + avg);
    }
}

실행 결과

평균: 30.0

 

4. 객체 배열 스트림

기본형 배열뿐 아니라 객체 배열도 스트림으로 변환할 수 있습니다.

import java.util.Arrays;

public class StreamExample4 {
    public static void main(String[] args) {
        String[] names = {"Tom", "Alice", "Bob", "David"};

        Arrays.stream(names)
              .filter(name -> name.startsWith("A"))
              .forEach(System.out::println);
    }
}

실행 결과

Alice

 

5. 부분 배열 스트림

배열의 일부분만 스트림으로 변환할 수도 있습니다.

import java.util.Arrays;

public class StreamExample5 {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6};

        Arrays.stream(numbers, 2, 5) // 인덱스 2 ~ 4
              .forEach(System.out::println);
    }
}

실행 결과

3
4
5

 

6. Arrays.stream() vs Stream.of()

  • Arrays.stream(array) → 배열을 스트림으로 변환
  • Stream.of(array) → 배열 자체를 한 요소로 취급할 수 있음
import java.util.Arrays;
import java.util.stream.Stream;

public class StreamExample6 {
    public static void main(String[] args) {
        String[] arr = {"A", "B", "C"};

        // 올바른 스트림 변환
        Arrays.stream(arr).forEach(System.out::println);

        // 배열 자체를 하나의 요소로 처리
        Stream.of(arr).forEach(System.out::println);
    }
}

실행 결과

A
B
C
[A, B, C]

👉 배열을 스트림으로 다루려면 **Arrays.stream()**을 쓰는 게 정석입니다.

 

7. 정리

  • Arrays.stream() → 배열을 Stream API와 연결
  • 합계, 평균, 필터링, 매핑 등 함수형 연산 가능
  • 부분 배열을 스트림으로 변환 가능
  • Stream.of()와 혼동하지 않도록 주의

👉 배열을 스트림으로 변환해 함수형으로 다루려면 Arrays.stream()을 쓰자!

 

 

반응형
Comments