java retainAll 메소드를 간단하게 분석해 봅시다.
retainAll이라는 메소드의 시간 복잡도에 대해서 질문이 들어왔습니다. AbstractCollection에 있는 메소드인데요. 결론부터 말씀드리겠습니다. 간단하게 정리하면, 인자로 넘어가는 Collection의 contains에 따라서 갈리게 됩니다. 그런데, retainAll이 따로 재정의된 케이스도 있기 때문에 시간 복잡도를 분석하실 때 주의가 필요합니다. 밑에서 후술하겠습니다. 먼저 이 메서드의 설명을 봅시다. Collection에서 retainAll을 호출할 때 이 메서드를 볼 일이 적지 않기 때문입니다. c에 있는 원소들만을 획득한다. 라고 설명이 되어 있네요. 그리고, UnsupportedOperation 예외를 떨굴 수도 있다고 하는데요. 삭제 연산을 지원하지 않는다면 떨어트려지게 됩니다..
레퍼런스/분석
2021. 11. 29. 23:08
최근댓글