According to http://docs.oracle.com/javase/tutorial/collections/interfaces/index.html there are two top level interfaces called collection and map.
Whats the exact reason for separating these two ?
Is it that all key value data structures implement the map interface and all others implement the collections interface ?

