본문 바로가기
스터디일지/JAVA

[2023.08.23] Streams

by 똥쟁이핑크 2023. 8. 23.

Stream 사용하기

  • 생성하기
    • 인스턴스 생성하기
    • 종류
      • 배열 - Arrays.stream 메소드를 사용한다.
      • 컬렉션 - 컬렉션 타입인 Collection, List, Set 의 경우는 stream이 디폴트 메소드다.
      • 요소가 없을 때 - Stream.empty()로 빈 스트림을 생성할 수 있다.
      • builder() - 스트림에 원하는 값을 넣고 싶을 때 사용한다.
      • generate() - 람다로 값을 넣을 때 사용한다. 크기는 무한하기 때문에 사이즈의 최대크기를 제한해야 한다.
      • 이 외에도 많다.
  • 가공하기
    • Stream API를 이용하여 원하는 결과로 만드는 작업을 한다.
    • filter - 스트림 내에 있는 요소를 평가를 해서 걸러낸다.
    • map - 스트림 내에 있는 요소를 특정값으로 변환해준다.
    • sorted - 정렬할 때 사용하는데 인자 없이 호출할 경우는 오름차순으로 정렬한다.
  • 결과
    • 최종작업으로 결과물을 만든다.
    • Calculating - 합이나 평균, 최소, 최대 등의 기본형 타입으로 결과를 만들 수 있다.
    • Reduction - 3가지의 파라미터를 받을 수 있고 파라미터 설정에 따라 결과값을 낸다.
    • Collecting - Collector 타입을 받아서 결과물을 낸다. Collectors.toList(), Collectors.joining() 등이 있는데 굉장히 많아서 필요할 때마다 찾아서 적용하는 것이 좋다.
    • Matching - 람다식을 이용해서 조건을 만족하는 요소가 있는지 체크하고 boolean 타입으로 그 결과를 리턴한다.

 

참고한 사이트

https://futurecreator.github.io/2018/08/26/java-8-streams/