본문 바로가기
Java/알고리즘과 자료구조

Java Stream 주요 메소드

by Mecodata 2023. 2. 27.

- 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

댓글