stream() 예제(Arrays, stream())
import java.util.Arrays;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
String[] array = {"Java", "Python", "C++"};
// 배열을 스트림으로 변환
Stream<String> stream = Arrays.stream(array);
// 스트림을 이용한 각 요소 출력
stream.forEach(System.out::println);
}
}
stream() 예제2(ArrayList, stream())
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
// 리스트를 스트림으로 변환
Stream<String> stream = list.stream();
// 스트림을 이용한 각 요소 출력
stream.forEach(System.out::println);
}
}
스트림 생성 방법
스트림은 인터페이스로서, 자바에서 스트림을 다루기 위한 핵심적인 개념 중 하나.
데이터를 다루는데 사용되는 일련의 요소들의 연속적인 흐름을 나타낸다.
주로 컬렉션, 배열 또는 I/O 자원 등에서 데이터를 다룰 때 사용
컬렉션에서 스트림 생성:
- 대부분의 컬렉션 클래스는 stream메서드를 제공하여 스트림을 생성할 수 있다.
List<String> list = Arrays.asList("Java", "Python", "C++");
Stream<String> stream = list.stream();
String[] array = {"Java", "Python", "C++"};
Stream<String> stream = Arrays.stream(array);
Stream<String> stream = Stream.of("Java", "Python", "C++");
Stream<String> lines = Files.lines(Paths.get("파일 경로"));
stream의 filter 이용 예제
import java.util.Arrays;
class Solution {
public int[] solution(int n, int[] numList) {
// 1. Arrays.stream(numList): numList 배열을 스트림으로 변환
// 2. filter(value -> value % n == 0): n으로 나누어 떨어지는 요소만 필터링
// 3. toArray(): 스트림의 결과를 배열로 변환
return Arrays.stream(numList).filter(value -> value % n == 0).toArray();
}
}