According to Wikipedia the Java Collection Framework ( JCF ) is a set of classes and interfaces that implement commonly reusable data structure. Although refereed to as a framework, it works in a manner of a library.
In my opinion, Collection Framework is a collection of some most used data structure like List, Set, Map. Data structure is everything we know. If we want to make a good program or algorithm we must focus on data structure. Because in programming we just work with data. We create, manipulate, retrieve, delete, search, sort on various type of data. So we need a better organized data. And collection frame help us to choose a better data structure without implement it ourselves. There are lot of data structure which is already implemented in efficient way. We just have to create an object of that and use it. They also provide lots of methods to work with these data structure. This post is all about collection framework and it’s architecture.
A collection framework is unified architecture for representing and manipulating collections. All collection framework contains the following-
- Interfaces: These are abstract data types that represents collections. Interfaces allow collections to be manipulated independently of the details of their representation. In object-oriented languages, interfaces generally form a hierarchy.
- Classes − These are the concrete implementations of the collection interfaces. In essence, they are reusable data structures.
- Algorithms − These are the methods that perform useful computations, such as searching and sorting, on objects that implement collection interfaces. The algorithms are said to be polymorphic: that is, the same method can be used on many different implementations of the appropriate collection interface.
The Collection interfaces are divided into two groups. The most common collections has the following descendants —
The Other collections are based on map.
If we divide the whole collection we have actually four part –
- List: The very basic interface of collection framework is List which extends Collections and it has many direct children. Like – AbstractList, ArrayList, LinkedList, Stack, Vector, RoleList etc. To checkout please visit List API
- Set: Another important interface is Set. It has also some direct children. Like – AbstractSet, EnumSet, HashSet, LinkedHashSet, TreeSet. For full info please visit Set API
- Map: Map has many direct children. Like – AbstractMap, ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, HashTable, IdentityHashMap, LinkedHashMap, TreeMap etc. Please check it here Map API
- Iterator: It’s an awesome tools to traverse throw the collections. Please check it here Iterator
Except this four major part there are lot of interface available. And also there are lot of classes which implement this interfaces. But most commonly used collections are placed here. This article is all about the architecture of collection framework. I will write several post on each and every interface and classes of Collection Framework. All I write is my thinking. If any topics I describe seems wrong please feel free to inform me.