containsKey get put add remove size iteration bytes per node
ConcurrentHashMap 1 1 1 1 1 n (of capacity, not size)
ConcurrentSkipListMap log(n) log(n) log(n) log(n) n n
EnumMap
HashMap
Hashtable
1 1 1 1 1 n (of capacity, not size)
IdentityHashMap
LinkedHashMap 1 1 1 1 1 n (of size, not capacity)
TreeMap log(n) log(n) log(n) log(n) 1 n
WeakHashMap

contains get set add remove size iteration bytes per node
ArrayBlockingQueue
ArrayDeque
ArrayList n 1 1 1 (amortized
constant time)?
n 1 n 0
ConcurrentLinkedQueue
ConcurrentSkipListSet
CopyOnWriteArrayList
CopyOnWriteArraySet
DelayQueue
EnumSet
HashSet
LinkedBlockingDeque
LinkedBlockingQueue
LinkedHashSet
LinkedList n n n 1 n (removal is 1 at
either end of
the list)
1 n 12 = 3*ref
PriorityBlockingQueue
PriorityQueue
Stack Extends Vector. Use ArrayDeque instead.
SynchronousQueue
TreeSet
Vector All accesses are synchronized. Use ArrayList instead.

TODO:

  • Add more collection types.
  • Add memory usage of each.
  • Split into one table for lists and one for maps.
Version 11.1 last modified by Geoff Fortytwo on 30/11/2008 at 17:31

Attachments 0

No attachments for this document
Website Top
Send Me Mail!:
   g42website4 AT g42.org
My Encyclopaedia Blog

Creator: Geoff Fortytwo on 2008/11/14 20:22
Copyright 2004-2007 (c) XPertNet and Contributing Authors
1.3.2.9174