Skip to content

Instantly share code, notes, and snippets.

@mkdika
Last active December 12, 2024 15:37
Show Gist options
  • Select an option

  • Save mkdika/d6539d2c33ffea4a69b6e37d88ed4b5c to your computer and use it in GitHub Desktop.

Select an option

Save mkdika/d6539d2c33ffea4a69b6e37d88ed4b5c to your computer and use it in GitHub Desktop.
Runtime Complexity with Java Collection API Chart

This is base on Gist by Psayre23. I just improve some data and add my own notes regard to this topic.

Below are the Big O performance of common functions of different Java Collections.

List Add Remove Get Contains Next Size Data Structure
ArrayList O(1) O(n) O(1) O(n) O(1) O(1) Array
LinkedList O(1) O(1) O(n) O(n) O(1) O(1) Linked List
CopyOnWriteArrayList O(n) O(n) O(1) O(n) O(1) O(n) Array
Set Add Remove Contains Next Size Data Structure
HashSet O(1) O(1) O(1) O(h/n) O(1) Hash Table
LinkedHashSet O(1) O(1) O(1) O(1) O(1) Hash Table + Linked List
EnumSet O(1) O(1) O(1) O(1) O(1) Bit Vector
TreeSet O(log n) O(log n) O(log n) O(log n) O(1) Red-black tree
CopyOnWriteArraySet O(n) O(n) O(n) O(1) O(1) Array
ConcurrentSkipListSet O(log n) O(log n) O(log n) O(1) O(n) Skip List
Queue Offer Peak Poll Remove Size Data Structure
PriorityQueue O(log n) O(1) O(log n) O(n) O(1) Priority Heap
LinkedList O(1) O(1) O(1) O(1) O(1) Array
ArrayDequeue O(1) O(1) O(1) O(n) O(1) Linked List
ConcurrentLinkedQueue O(1) O(1) O(1) O(n) O(n) Linked List
ArrayBlockingQueue O(1) O(1) O(1) O(n) O(1) Array
PriorirityBlockingQueue O(log n) O(1) O(log n) O(n) O(1) Priority Heap
SynchronousQueue O(1) O(1) O(1) O(n) O(1) None!
DelayQueue O(log n) O(1) O(log n) O(n) O(1) Priority Heap
LinkedBlockingQueue O(1) O(1) O(1) O(n) O(1) Linked List
Map Get ContainsKey Next Data Structure
HashMap O(1) O(1) O(h / n) Hash Table
LinkedHashMap O(1) O(1) O(1) Hash Table + Linked List
IdentityHashMap O(1) O(1) O(h / n) Array
WeakHashMap O(1) O(1) O(h / n) Hash Table
EnumMap O(1) O(1) O(1) Array
TreeMap O(log n) O(log n) O(log n) Red-black tree
ConcurrentHashMap O(1) O(1) O(h / n) Hash Tables
ConcurrentSkipListMap O(log n) O(log n) O(1) Skip List

Other References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment