스트림의 연산종류 (개관)

sion Jeong·2024년 7월 10일
0

스트림의 연산

💡 핵심

  • 중간연산은 → 연산결과가 스트림임을 알 수 있다 → 반복적으로 적용가능
  • 최종연산은 → 연산결과가 스트림이 아니다! → 한번만 적용가능
  • 최종연산 후에 → 스트림이 닫힌다 (더이상 사용불가) (새로 스트림 만들어서 써야함)

스트림이 제공하는 기능은

  • 중간연산: 여러개 가능
  • 최종연산: 0~한개 가능
  • 중간연산은 → 연산결과가 스트림임을 알 수 있다 → 여러번 적용가능
  • 최종연산은 → 연산결과가 스트림이 아니다! → 한번만 적용가능
  • 최종연산 후에 → 스트림이 닫힌다 (더이상 사용불가) (새로 스트림 만들어서 써야함)

스트림 중간 연산의 종류

Stream<T> distinct() //중복을 제거
Stream<T> filter(조건식) //조건에 안 맞는 요소 제외
Stream<T> limit(5) //5개 자름
Stream<T> skip(3) //3개를 건너뜀
Stream<T> peek(Consumer<T> action) //forEach랑 비슷 -> 작업 중간에 확인할 때 사용
Stream<T> sorted() //스트림의 요소 정렬
Stream<T> sorted(정렬기준) // 정렬 기준에 따라 정렬

map, flatMap = 스트림의 요소를 변환
어떻게 변화할지를 (람다식으로 줌)

스트림의 최종연산 종류

forEach()// 지정된 작업 수행
forEachOrdered() //순서유지 -> 병렬작업시 작업순서를 유지해서 처리 

count() //스트림 요소의 갯수 반환

max(정렬기준) //최대값
min(정렬기준) //최소값

findAny() //스트림의 요소 아무거나 하나 반환 (필터랑 같이 사용됨)
findFirst() //첫번째 요소 (필터랑 같이 사용됨)

allMatch(조건식) //모두 만족하는지 확인(boolean 타입)
anyMatch(조건식) //하나라도 만족하는지 확인 (boolean 타입)
noneMatch(조건식) //모두 만족하지 않는지 ****(boolean 타입) 

toArray() //스트림의 모든 요소를 Object[] 객체 배열로 담아서 줌
toArray(generate()) // 제너레이터를 주면 특정 타입으로 받을수 있다????

reduce(), collect  최종연산의 핵심
reduce() //스트림의 요소를 하나씩 줄여가며 계산 (예시 sum -> 1, 2, 3 이면 -> 1, 2, 3 하나씩 줄여가며 연산함)
profile
개발응애입니다.

0개의 댓글