Java Collections Framework

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
(Concepts)
Line 16: Line 16:
  
 
== Concepts ==
 
== Concepts ==
 +
 +
=== Iterators ===
 +
[[Iterator]]
  
 
=== Comparators ===
 
=== Comparators ===

Revision as of 09:46, 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.
Collections-detail-1.png

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.

Concepts

Iterators

Iterator

Comparators

Strategy

Guava - The Google Collections Library

Introduction

Features and Benefits

New Collections

Personal tools