Java Collections Framework 구현을 위한 Big-O 표기법
다양한 Java Collections Framework 구현에 대한 Big-O 작업 순서를 이해하는 것이 다음과 같은 경우에 중요합니다. 특정 작업에 적합한 데이터 구조 선택
목록 구현
- ArrayList: O(1) for get, add, contain 및 iterator.remove ; 제거(0)의 경우 O(n)
- LinkedList: 가져오기의 경우 O(n), 추가, 포함 및 제거(0)의 경우 O(1), iterator.remove의 경우 O(1)
- CopyOnWriteArrayList: 가져오기의 경우 O(1), 추가, 포함 및 제거(0)의 경우 O(n), iterator.remove의 경우 O(n)
구현 설정
- HashSet: 추가 및 포함의 경우 O(1), 다음의 경우 O(h/n)(여기서 h는 테이블 용량)
- LinkedHashSet: O(1) 모든 작업의 경우
- CopyOnWriteArraySet: 추가 및 포함의 경우 O(n), 다음의 경우 O(1)
- EnumSet: 모든 작업의 경우 O(1)
- TreeSet: O (log n) 모든 작업
- ConcurrentSkipListSet: O(log n) 모든 작업
맵 구현
- HashMap : get 및 containKey의 경우 O(1), 다음의 경우 O(h/n)(여기서 h는 테이블 용량)
- LinkedHashMap: 모든 작업의 경우 O(1)
- IdentityHashMap: O (1) get 및 containKey의 경우, 다음의 경우 O(h/n)(여기서 h는 테이블 용량)
- EnumMap: 모든 작업의 경우 O(1)
- TreeMap: O(log n) 모든 작업의 경우
- ConcurrentHashMap: get 및 containKey의 경우 O(1), 다음의 경우 O(h/n)(여기서 h는 테이블 용량)
- ConcurrentSkipListMap: O(log n ) 모든 작업의 경우
큐 구현
- PriorityQueue: 제안 및 폴링의 경우 O(log n), 픽 및 크기의 경우 O(1)
- ConcurrentLinkedQueue: 모든 작업의 경우 O(1)
- ArrayBlockingQueue: 제안, 픽 및 폴의 경우 O(1), 크기의 경우 O(1)
- LinkedBlockingQueue: O (1) 제안, 픽, 폴링의 경우 O(1) 크기
- PriorityBlockingQueue: 제안 및 폴링의 경우 O(log n), 픽 및 크기의 경우 O(1)
- DelayQueue : 제안 및 폴링의 경우 O(log n), 픽 및 크기의 경우 O(1)
- LinkedList: 모든 작업의 경우 O(1)
- ArrayDeque: 모든 작업의 경우 O(1)
- LinkedBlockingDeque: 모든 작업에 대해 O(1)
추가 리소스
모든 Java Collections Framework에 대한 포괄적인 요약 표와 주석이 달린 개요 구현하려면 다음 리소스를 참조하십시오.
- 컬렉션 개요: https://docs.oracle.com/javase/tutorial/collections/intro/index.html
- 주석이 있는 개요: https://docs.oracle.com/javase/7/docs/api/java/util/package-summary.html
위 내용은 다양한 Java Collections Framework 구현의 Big-O 복잡성이 성능에 어떤 영향을 미치고 데이터 구조 선택을 안내합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!