Cuốn sách Java Generics and Collections có thông tin này (trang: 188, 211, 222, 240).
Danh sách triển khai:
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)
Set triển khai:
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)
Bản đồ triển khai:
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)
triển khai Queue:
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)
Đáy của javadoc cho gói java.util chứa một số liên kết tốt:
Liệu [điểm chuẩn hiệu suất] này (https://github.com/ThreaT/Java-Collections-Benchmark) có được sử dụng không? – ThreaT
Đây là một liên kết tôi thấy hữu ích khi thảo luận một số đối tượng Java rất phổ biến và chi phí hoạt động của chúng bằng cách sử dụng ký hiệu Big-O. http://objectissues.blogspot.com/2006/11/big-o-notation-and-java-constant-time.html – Nick
Mặc dù không thuộc phạm vi công cộng, tuyệt vời [Java Generics and Collections] (http: // oreilly.com/catalog/9780596527754/) của Maurice Naftalin và Philip Wadler liệt kê các tổng quan về thông tin thời gian chạy trong các chương của nó trên các lớp sưu tập khác nhau. –