본문 바로가기

강의 내용 정리/JAVA 기초 정리

5-9강 스트림의 이해와 활용(2)

중간연산은 반환타입이 Stream 이므로 연속해서 연산가능.

 

 

최종연산하면 스트림 닫힘.

 

 

 

- distinct() 주의점:

병렬스트림 : 데이터들을 가지고 있을 때 여러개의 스레드로 나누어서 동시에 필터링 진행

 컬렉션 참조 변수.stream() 연산 시 병렬스트림으로 받을 지 단일스트림으로 받을 지 선택가능 -> 만약 병렬스트림으로 받고 distinct() 연산시 성능에 문제 생길 수 있음 ( distinct는 중복제거연산인데 중복을 제거하려면 어차피 전체를 검색해야하기 때문에 )

 

 

sorted() 쓰려면 무조건 Comparable 인터페이스 상속받고, compareTo() 메서드를 재정의 해야한다. 

 

만약,

compareTo 메서드를 재정의 하여 한 번 사용하였는데 다른 기준으로도 정렬하고 싶다.

-> sorted는 인자가 없는 sorted()와 sorted(Comparator.comparing(Customer::getName)) 처럼 인자가 있는 두가지이다.

-> 뒤 처럼 새로운 정렬조건을 넣어서 정렬한다..

 

 

 

filter 나 sorted는 스트림객체로 반환함.  위의 경우 Stream<Customer>

 

원하는 속성으로만 Stream으로 꺼내고 싶은 경우 -> map . 위의 경우 이름만 가져옴.

이 때 메서드레퍼런스형식(Customer::getName) 대신 람다식으로 작성해도됨.

 

 

 

 

 

 

# 최종연산

forEach, collect 많이 씀

 

 

 

 

 

 

 

 자료를 참고하였습니다.

 

 

꾸준히 다시보자.

 

1. 220725

2. 220814

3. 220910

Recent Posts
Popular Posts
Recent Comments