Most of the methods in the data structure classes are those of the interfaces that the classes implement.
Collections - This is a basic set of methods for working with data structures.List - (extends Collection) Elements are accessible sequentially.Map - Stores key/value pairs, rapidly accessible by key.SortedMap - (extends Map) As with map, but can be also be accessed in order.Set - (extends Collection) For a given key there is only one value.SortedSet - (extends Set) As above, but can also be accessed in order.The following classes and interfaces, are in the java.util package.
Indentation shows the class inheritance. The most useful classes are in bold.
Collections // Contains may useful static methods. AbstractCollection<E> implements Collection<E>, Iterable<E> AbstractList<E> implements List<E> ArrayList<E> implements RandomAccess AbstractSequentialList<E> LinkedList<E> Vector<E> implements RandomAccess<E> // Synchronized equivalent of ArrayList Stack<E> // Adds push(), pop(), and peek() AbstractSet<E> implements Set<E> HashSet<E> LinkedHashSet<E> TreeSet<E> implements SortedSet<E> EnumSet<E> // Bitset implementation for Enum class. AbstractQueue<E> implements Queue<E> PriorityQueue<E> AbstractMap<K, V> implements Map<K, V> HashMap<K, V> LinkedHashMap<K, V> // Keys can be iterated in insertion order. TreeMap<K, V> implements SortedMap<K, V> EnumMap<K, V> // Keys must be from same Enum class. WeakHashMap<K, V> // Special usage - Keys are weak references. IdentityHashMap<K, V> // Special usage - Keys must be identical. Map.Entry<K, V> // Map key/value pair. Iterator<E> // Interface requireshasNext(),next(), ?remove()ListIterator<E> // Interface Comparator<T> // Interface requirescompare()andequals()// The following java.lang interfaces are commonly used in Collections. Iterable<T> // Interface requiresiterator()Comparable<T> // Interface requirescompareTo()
These are some of the most useful data structure classes, listing the primary data-structure relevant interface, and omitting utility interfaces such as Cloneable and Serializable.
| Class | Implementation |
|---|---|
| Most commonly used classes | |
| ArrayList | Sequence of values stored in resizable array |
| LinkedList | Sequence of values stored in linked list |
| HashMap | Key/value pairs in hash table. |
| TreeMap | Key/value pairs in balanced binary tree. |
| HashSet | Single copy of value stored in hash table. Implements Set. |
| TreeSet | Single copy of value stored in balanced binary. Implements Set. |
| Interfaces | |
| Collection | Methods common to all data structures. |
| List | Basic List methods. Implemented by ArrayList and LinkedList. |
| Map | Basic Map methods. Implemented by HashMap and TreeMap. |
| Map.Entry | Key/value pairs in Set returned by Map.entrySet(). |
| Set | Basic Set methods. Implemented by HashSet and TreeSet. |
| Iterator | Methods for forward iteration. |
| ListIterator | Additional methods for going backward. |
| Specialized classes | |
| BitSet | Expandable array of bits. |
| LinkedHashSet | Hash table where entries can also be accessed in order of creation. |
| WeakHashMap | Hash table using weak references |
| Preferences | For persistent storage of program options. |
| Properties | Pre-Java 2, compare to Preferences |
| Older classes which have a newer replacement | |
| HashTable | Older, synchronized version of HashMap. |
| Vector | Older, synchronized version of ArrayList, still used. |
| Obsolete classes | |
| Dictionary | Obsolete abstract class. Do not use. |
| Implementations | ||||
|---|---|---|---|---|
| Interface | Array | Balanced Tree | Linked List | Hash table |
List | ArrayList | LinkedList | ||
Map | TreeMap | HashMap | ||
Set | TreeSet | HashSet | ||