Collections
java
I always feel that the Collections Framework of Java is designed to be confusing, not only because of the naming of classes and methods, but also because of the result of Java's religious obsessoin with object-oriented programming.
There are two base interfaces in Java's Collections Framework, Collection ( java.util Interface Collection<E> ), and Map ( java.util Interface Map<K,V> ). Note that the name Collections( java.util Class Collections ) is an utility class providing static methods like sorting, searching, etc. You now know how ugly the names are designed!
![]() |
|---|
| Hierarchy of Java Collection framework[1] |
![]() |
|---|
| Java Map Hierarchy[2] |
| Thread Unsafe | Thread Safe |
|---|---|
| StringBuilder | StringBuffer |
| ArrayList | Vector |
| HashMap (allows one null key and multiple null values) | HashTable (doesn’t allow any null key or null value) |
| Properties | |
| TreeMap (red black tree) | |
| java.util.concurrent.* |

