📌 Stream 이란 ?
stream은 데이터의 흐름을 뜻한다. Stream은 데이터를 순차적 또는 병렬적으로 처리하는 방식이며, 데이터의 처리에 초점을 둔다. 여기서 데이터의 처리란 원하는 데이터만 처리할 수 있도록 filter 역할을 해주는 연산자들을 뜻한다고 생각하면 된다.
데이터의 소스를 추상화 하고 데이터를 다루는데 유용한 메서드를 정의해 놓은 것
🔻 Stream의 연산
Stream에는 중간 연산자,최종 연산자 2가지 연산이 존재한다.
- 중간 연산자 : filter(), map(), sorted() 등과 같이 데이터를 처리하는 역할한다.
filter(Predicate) : 조건에 맞는 요소만 필터링(= 조건에 안맞는 요소 버림)
map(Function) : 요소를 변환 (예: String을 Integer로 변환)
sorted() : 스트림의 요소를 정렬
distinct() : 중복 요소 제거
- 최종 연산자 : collect(), toArray() 등으로, 스트림이 최종적으로 처리되는 시점을 말한다.
collect() : 스트림의 요소들을 모아서 리스트, 집합, 맵 등의 자료구조로 변환
toArray() : 스트림의 요소들을 배열로 변환하는 최종 연산자
ArrayList나 다른 Collection은 바로 Stream을 생성할 수 있다.
List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
배열은 직접 stream() 메서드를 제공하지 않으므로, 변환해야한다.
int[] array = {1, 2, 3, 4, 5};
IntStream intStream = Arrays.stream(array);
IntStream은 기본 타입 int를 다루는 데 최적화된 Stream
1번 : Arrays.stream(배열).mapToInt(Integer::parseInt).toArray() 이때 배열 => string[]
-> 배열로 바꿈
2번 : Arrays.stream(배열).collect(Collectors.toList()) 이때 배열 => string[]
-> List로 바꿈
'JAVA' 카테고리의 다른 글
[ java ] 조건문 (0) | 2024.12.03 |
---|---|
[ java ] 반복문 (0) | 2024.12.03 |
[ java ] 클래스 변수, 인스턴스 변수, 지역변수 (0) | 2024.11.14 |
[ java ] 제네릭(generic) (0) | 2024.10.17 |
[ java ] Immutable Object(불변 객체) (0) | 2024.09.23 |