Stream

김지윤·2023년 2월 14일
0

자바

목록 보기
10/11

스트림이란?

외부 반복자 : List에서 index로 접근하거나, Set에서 Iterator로 접근하는 것은 요소들을 외부로 꺼내와서 작업하는 방식이다.

내부 반복자 : 데이터를 Stream에 넣어주면 데이터가 흘러가면서 외부에서 하나씩 처리된다. 람다식으로 처리한다.

-> 외부 반복자를 사용하면 시간이 더 오래 걸린다.

Set<String> set = new HashSet<>();
Stream<String> stream = set.stream();
stream.forEach((item) -> { 처리내용 });	
// 매개변수가 있어야하므로 t를 넣어준다.

<병렬 스트림>

List<String> list = new ArrayList<>();
Stream<String> stream = list.parallelStream();
stream.forEach(item -> {});
  • 여러개의 스트림을 만드는 병렬 스트림은 parallelStream()을 사용
  • 코어 개수(논리 프로세스)만큼 스레드 생성



forEach는 최종 처리이다. 중간 처리법을 배워보자.

  • 컬렉션에서 숫자만 꺼내오기 : mapToInt(객체 값);



필터링 (중간 처리)

  • 요소 걸러내기
  • distinct() : 중복 제거
  • filter(람다식) : 조건 필터링
    • boolean을 반환하는 메소드를 사용하여 람다식 작성

-> 중간 처리 과정을 통해서 리소스에서 진짜 없어지는 것이 아니고, 스트림에서 없앤다는 의미이다.

profile
꾸준하게 공부하고 기록하는 개발자

0개의 댓글