티스토리 뷰

Java

JAVA Collection 시간 복잡도

cherishee 2020. 8. 6. 13:16

알고리즘 문제를 풀다가 사용한 자료구조(컬랙션)에 따라 시간이 많이 차이나는 것을 알았다.

다음은 각 컬랙션 클래스의 시간복잡도를 정리한 것이다.

 

List

Class Name Add Remove Get Contains
ArrayList O(1) O(n) O(1) O(n)
LinkedList O(1) O(1) O(n) O(n)

Set

Class Name Add Contains Next
HashSet O(1) O(1) O(h/n)
LinkedHashSet O(1) O(1) O(1)
EnumSet O(1) O(1) O(1)
TreeSet O(log n) O(log n) O(log n)

Queue

Class Name Offer Peak Poll Size
PriorityQueue O(log n) O(1) O(log n) O(1)
LinkedList O(1) O(1) O(1) O(1)
ArrayDequeue O(1) O(1) O(1) O(1)
DelayQueue O(log n) O(1) O(log n) O(1)

Map

Class Name Get ContainsKey Next
HashMap O(1) O(1) O(h/n)
LinkedHashMap O(1) O(1) O(1)
WeakHashMap O(1) O(1) O(h/n)
EnumMap O(1) O(1) O(1)
TreeMap O(log n) O(log n) O(log n)

 

참고 

http://kwseo.github.io/2015/09/24/time-complexity-about-collections/

'Java' 카테고리의 다른 글

[Java] if문 VS switch문  (0) 2020.08.13
[Java] 문자열의 모든 문자를 반복하는 가장 빠른 방법  (0) 2020.08.12
[Java] char to int  (0) 2020.03.23
[Java] 객체 비교 (Comparator / Comparable)  (0) 2020.03.10
[Java] JVM  (0) 2020.03.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함