Big-O1 [Java] 컬렉션들의 시간복잡도 (Collection Big-O) 자바를 이용해서 알고리즘 문제를 풀거나 큰 사이즈의 데이터를 다룰 때, 컬렉션들의 정확한 시간복잡도(Big-O)를 알고 사용하는 것이 중요하다. 자칫 불필요하게 느린 컬렉션이나 메소드를 사용할 경우 예상치 못한 성능저하를 만날 수 있기 때문이다. List add() remove() get() contains() ArrayList O(1) O(n) O(1) O(n) LinkedList O(1) O(1) O(n) O(n) CopyOnWriteArrayList O(n) O(n) O(1) O(n) 참고로 LinkedList의 삭제 연산인 remove() 메소드는 삭제할 노드에 대한 참조를 가지고 있다는 가정하에 O(1)임을 유의해야한다. 만약 처음부터 지울 데이터를 찾아야한다면 탐색 비용인 O(n)이 소요된다... 2021. 7. 24. 이전 1 다음