Java 컬렉션 프레임워크 구현을 위한 Big-O 표기법
다가올 Java 충돌 과정을 예상하려면 간결한 설명을 제공하는 것이 중요합니다. 다양한 컬렉션 구현에 대한 다양한 작업의 시간 복잡도 요약
목록 구현
Implementation | get | add | contains | next | remove(0) | iterator.remove |
---|---|---|---|---|---|---|
ArrayList | O(1) | O(1) | O(n) | O(1) | O(n) | O(n) |
LinkedList | O(n) | O(1) | O(n) | O(1) | O(1) | O(1) |
CopyOnWrite-ArrayList | O(1) | O(n) | O(n) | O(1) | O(n) | O(n) |
구현 설정
Implementation | add | contains | next | Notes |
---|---|---|---|---|
HashSet | O(1) | O(1) | O(h/n) | h is the table capacity |
LinkedHashSet | O(1) | O(1) | O(1) | - |
CopyOnWriteArraySet | O(n) | O(n) | O(1) | - |
EnumSet | O(1) | O(1) | O(1) | - |
TreeSet | O(log n) | O(log n) | O(log n) | - |
ConcurrentSkipListSet | O(log n) | O(log n) | O(1) | - |
지도 구현
Implementation | get | containsKey | next | Notes |
---|---|---|---|---|
HashMap | O(1) | O(1) | O(h/n) | h is the table capacity |
LinkedHashMap | O(1) | O(1) | O(1) | - |
IdentityHashMap | O(1) | O(1) | O(h/n) | h is the table capacity |
EnumMap | O(1) | O(1) | O(1) | - |
TreeMap | O(log n) | O(log n) | O(log n) | - |
ConcurrentHashMap | O(1) | O(1) | O(h/n) | h is the table capacity |
ConcurrentSkipListMap | O(log n) | O(log n) | O(1) | - |
대기열 구현
Implementation | offer | peek | poll | size |
---|---|---|---|---|
PriorityQueue | O(log n) | O(1) | O(log n) | O(1) |
ConcurrentLinkedQueue | O(1) | O(1) | O(1) | O(n) |
ArrayBlockingQueue | O(1) | O(1) | O(1) | O(1) |
LinkedBlockingQueue | O(1) | O(1) | O(1) | O(1) |
PriorityBlockingQueue | O(log n) | O(1) | O(log n) | O(1) |
DelayQueue | O(log n) | O(1) | O(log n) | O(1) |
LinkedList | O(1) | O(1) | O(1) | O(1) |
ArrayDeque | O(1) | O(1) | O(1) | O(1) |
LinkedBlockingDeque | O(1) | O(1) | O(1) | O(1) |
추가 리소스
추가 탐색을 위해 다음과 같은 귀중한 리소스를 고려하세요.
위 내용은 다양한 Java 컬렉션 프레임워크 작업의 Big-O 시간 복잡성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!