시간복잡도, 효율성을 따지다가 removeAll()과 []은 뭐가 다른건가 생각이 들었다.
!!!!!!!!!!!!!!!!!!!!
근데 보면 default가 false이다.
만약 keepingCapacity로 true를 넘겨준다면 요소는 제거하지만, 메모리는 제거하지 않는다.
내 생각엔 이것 같다.
true를 넘겨줘 메모리를 남겨둔다면 complexity가 O(n)인 것이고, 기본값 false이면 아닌 것
아니 아무리 생각해봐도 그냥 가차없이 다 지워버리는건데 차례대로 지우는 것도 아니고 검색을 하는 것도 아니고.. 그래서 의문을 가졌었다.
내가 내린 결론은 []를 저장해 빈 배열로 만들던, removeAll()을 쓰던 상관이 없다. 이다.
궁금한 분이 계시다면 밑글을 한번 읽어보는 것도 좋을 것 같다.
https://stackoverflow.com/questions/54133045/performance-array-removeall-vs
여담으로 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 |
댓글