Collection framework was not part of original Java release. Collections was added to J2SE 1.2. Prior to Java 2, Java provided adhoc classes such as Dictionary, Vector, Stack and Properties to store and manipulate groups of objects. Collection framework provides many important classes and interfaces to collect and organize group of alike objects.
Important Interfaces of Collection API
|Collection||Enables you to work with groups of object; it is at the top of collection hierarchy|
|Deque||Extends queue to handle double ended queue.|
|List||Extends collection to handle sequences list of object.|
|Queue||Extends collection to handle special kind of list in which element are removed only from the head.|
|Set||Extends collection to handle sets, which must contain unique element.|
|SortedSet||Extends sets to handle sorted set.|
All these Interfaces give several methods which are defined by collections classes which implement these interfaces.
Why Collections were made Generic ?
Generics added type safety to Collection framework. Earlier collections stored Object class references. Which means any collection could store any type of object. Hence there were chances of storing incompatible types in a collection, which could result in run time mismatch. Hence Generics was introduced, now you can explicitly state the type of object being stored.
Collections and Autoboxing
We have studied that Autoboxing converts primitive types into Wrapper class Objects. As collections doesn't store primitive data types(stores only refrences), hence Autoboxing facilitates the storing of primitive data types in collection by boxing it into its wrapper type.
Most Commonly thrown Exceptions in Collection Framework
|UnSupportedOperationException||occurs if a Collection cannot be modified|
|ClassCastException||occurs when one object is incompatible with another|
|NullPointerException||occurs when you try to store null object in Collection|
|IllegalArgumentException||thrown if an invalid argument is used|
|IllegalStateException||thrown if you try to add an element to an already full Collection|