Java Collections Framework
Tanmay Bhola (Talk | contribs) (→Overview) |
Tanmay Bhola (Talk | contribs) |
||
Line 15: | Line 15: | ||
This section gives a brief introduction/ refresher on the choice of data structure according to the needs of the programmer. It gives a software engineering viewpoint on Data Structures. A more detailed explanation can be found in any 'Data Structures' book. | This section gives a brief introduction/ refresher on the choice of data structure according to the needs of the programmer. It gives a software engineering viewpoint on Data Structures. A more detailed explanation can be found in any 'Data Structures' book. | ||
− | == | + | == Concepts == |
+ | |||
+ | === Comparators === | ||
+ | [[Strategy]] | ||
== Guava - The Google Collections Library == | == Guava - The Google Collections Library == | ||
+ | === Introduction === | ||
+ | |||
+ | === Features and Benefits === | ||
+ | |||
+ | === New Collections === |
Revision as of 09:44, 21 August 2010
Contents |
Overview
This section presents a higher level take on the Java Collections Framework (JCF) originally designed by Joshua Bloch while working at Sun Microsystems in 1997. According to Joshua, the JCF was designed using three main ideas:
- 1) Interfaces that define Collections
- 2) Implementations that provide either concrete or abstract implementations
- 3) Algorithms that allow you to manipulate the collections
The main motivation behind the framework was that it was extensible, allowing people to build on it and add to it. This has lead to a number of highly specialised implementations of the framework by different people. For example, the open-source Google Guava Libraries provide implementations of some immutable, unmodifiable and synchronised collection classes. Collections can play an important role not only in program efficiency but also in good OO Design. Using the wrong collections can lead to a maintenance nightmare. Hence, this article aims to equip the readers with the essentials of using collections with emphasis on software design (concepts like Inheritance, Good OO practices, Concepts , Hidden Design Patterns) as compared to a tutorial on the subject. Using the correct collection for a task can make the design highly simplified.
The JCF Design
The high level design of the JCF Components has been given below.
The Choice of Collection
This section gives a brief introduction/ refresher on the choice of data structure according to the needs of the programmer. It gives a software engineering viewpoint on Data Structures. A more detailed explanation can be found in any 'Data Structures' book.