본문 바로가기
iOS/Swift

Swift) removeAll() vs []

by Jiseong 2022. 2. 13.

시간복잡도, 효율성을 따지다가 removeAll()과 []은 뭐가 다른건가 생각이 들었다.

!!!!!!!!!!!!!!!!!!!!

근데 보면 default가 false이다.

 

만약 keepingCapacity로 true를 넘겨준다면 요소는 제거하지만, 메모리는 제거하지 않는다.

 

내 생각엔 이것 같다.


true를 넘겨줘 메모리를 남겨둔다면 complexity가 O(n)인 것이고, 기본값 false이면 아닌 것

 

아니 아무리 생각해봐도 그냥 가차없이 다 지워버리는건데 차례대로 지우는 것도 아니고 검색을 하는 것도 아니고.. 그래서 의문을 가졌었다.

 

내가 내린 결론은 []를 저장해 빈 배열로 만들던, removeAll()을 쓰던 상관이 없다. 이다.

 

궁금한 분이 계시다면 밑글을 한번 읽어보는 것도 좋을 것 같다.

 

https://stackoverflow.com/questions/54133045/performance-array-removeall-vs

 

Performance: Array.removeAll vs `= []`

Is there a difference in performance computationally and/or memory-wise between Swift Array/Dictionary primitive functions removeAll and init? Basically, I am asking, what are the pros and cons to

stackoverflow.com

 

여담으로 removeAll(Where:)은 .. 조건에 맞는 요소를 검색해서 지우는거니 O(n)이 맞는 것 같다.

 

 

공식문서

https://developer.apple.com/documentation/swift/array/2885725-removeall

https://developer.apple.com/documentation/swift/array/3017530-removeall

'iOS > Swift' 카테고리의 다른 글

Swift) ARC  (0) 2022.02.13
Swift) Protocol(1)  (0) 2022.02.13
Swift) map  (0) 2022.02.12
Swift) DoubleStack - Queue  (0) 2022.02.12
Swift) TDD  (0) 2022.02.12

댓글