[Kotlin] Collection, Sequence - 2

Chloe Choi·2020년 12월 13일
0

Kotlin

목록 보기
3/11

Collection, Sequence의 두번째 내용으로, 실제 동작 및 Sequence의 장점을 다룹니다. 첫번째 내용은 Collection, Sequence - 1 여기!

동작

다음 문제에 대해 각 Colleciton, Sequence가 어떻게 동작하는지 보겠습니다.

문제) 다른 모양의 객체를 가진 리스트가 있다. 색상을 yellow로 하고 원사의 모양이 사각형인 첫번째 원소를 찾아라

Collection


#1. map is called
: map의 결과로 새로운 Collection이 생성된다. 초기 Collection의 모든 아이템을 돌며 원본 객체의 색상을 바꿔 카피한 뒤 새로운 리스트에 추가한다.
#2. First is called
: 첫번째 사각형 원소를 찾기 전까지 모든 원소를 돌며 찾는다.

Sequence


실제 동작 전 단계와 실제 동작 단계를 나눠 설명하겠습니다.

동작 전

#1. asSeqence is called
: 원본 Collection에 기반해 Sequence 생성
#2. map is called
: 바로 연산이 실행되지 않고, transformation이 Sequence 내에 저장
#3. first is called
: terminal 연산이므로 각 원소에 대해 intermediate 연산들 실행

실제 동작

#1, #3 map is called
: Sequence 내의 각 원소에 대해 객체의 색상을 바꿈
#2, #4 first is called
: map의 결과로 얻은 원소에 대해 조건 확인
최초 리스트 내 두번쨰 원소에서 first를 만족하기 때문에 세번째 원소부터는 map도 실행되지 않음!

정리

Collection: Each operation is executed on the entire collection. New collection is created for each operation.
Sequence: Elements are evaluated one by one.

이런 동작방식으로 생긴 Sequence의 장점은 다음 글에서 다루겠습니다🤓

참고

https://medium.com/androiddevelopers/collections-and-sequences-in-kotlin-55db18283aca

🙇🏻‍♀️📚

profile
똑딱똑딱

0개의 댓글