- Java의 Collection에는 stream()이 정의되어 있기 때문에 List, Set, Map 등에 .steam()를 통해 스트림 생성 가능
※ Collection 이외에도 Arrays에도 스트림 생성 가능
- steam() 메소드를 사용하면 반환 데이터 타입이 stream이기 때문에 마지막에 목적에 맞는 타입으로 변환하는 메소드를 입력해야 함
- 단순 for문이 stream 보다 코드는 복잡하지만 속도는 훨씬 빠름 => for문이 더 나온지 오래되어 최적화가 더 잘 되어있음
변환 메소드
- toArray() = 배열로 변환
※ Stream을 배열로 변환하려면 별도의 메소드 없이 .toArray()로 가능하지만 Collection(List, Map, Set)으로 변환하려면 .collect(Collector.toList())와 같이 collect와 Collector를 이용해야 함
- toList() = List(ArrayList도 가능)로 변환
- toMap() = Map으로 변환
- mapToInt(i -> i), mapToDouble(i -> i), mapToLong(i -> i) = 스트림을 구성하는 각 요소들을 int, double, long으로 변환
연산 메소드
- average() = 평균
- sum() = 총합
※ sum()은 결과값이 int라 getAsInt() 불필요
- max(), min() = 최대, 최소
- skip() = 지정한 숫자 만큼의 원소 패스
- limit() = 지정한 숫자 만큼의 원소만 추출
- getAsInt(), getAsDouble() = stream의 원소들의 연산을 처리한 값의 데이터 형식 지정 (int, double)
ex) double a = Arrays.stream(arr).average().getAsDouble();
정렬 메소드
- sorted() = 오름차순 정렬
- sorted(Comparator.reverseOrder()) = 내림차순 정렬
- distinct() = 중복 원소 제거
- filter(조건) = 해당 조건을 만족하지 않은 원소들 버림
'Java > 알고리즘과 자료구조' 카테고리의 다른 글
java.math.BigInteger (0) | 2023.04.24 |
---|---|
java.util.Deque (0) | 2023.02.27 |
java.util.ArrayList (0) | 2023.02.23 |
java.lang.Integer (0) | 2023.02.23 |
Array vs ArrayList (0) | 2023.02.23 |
댓글