This page is optimized for mobile devices, if you would prefer the desktop version just click here

4.6 Java4040: purpose of framework implementations and algorithms  (Page 2/6)

Introduction

We learned in an earlier module that the framework provides at least nine concrete implementations of the interfaces in the framework. Thesenine implementation classes are available for immediate instantiation to produce objects to satisfy your collection needs.

We also learned that the framework provides at least three incomplete implementations. These classes are available for you to use as a starting point in defining yourown implementations. Default implementations of many of the interface methods are provided in the incomplete implementations.

Discussion and sample code

Purpose of implementations

The implementations in the Java Collections Framework are the concrete definitions of the classes that implement the core collection interfaces . For example, concrete implementations in the Java CollectionsFramework are provided by at least the following nine classes.

  • HashSet
  • TreeSet
  • LinkedList
  • ArrayList
  • Vector
  • HashMap
  • WeakHashMap
  • TreeMap
  • Hashtable

Available for immediate use

These classes are available for immediate use to instantiate collection objects.

As you can see, there are two classes that obviously fall into the Set category, two that obviously fall into the List category, and three that obviously fall into the Map category. You can learn more about the detailed characteristics of those classes in the standard Java documentation andin The Java Tutorials .

This leaves two additional classes whose names don't readily divulge the category to which they belong.

Vector and Hashtable classes

The classes Vector and Hashtable were part of Java even before the Java Collections Framework became available. The Vector class can be used to instantiate objects that fall in the general List category.

The Hashtable class can be used to instantiate objects that fall in the Map category.

These two classes have been upgraded to make them compatible with the Collections Framework.

Abstract implementations

In addition to the concrete implementations listed above, the following three classes partially implement the interfaces, but are not intended forinstantiation. Rather, they are intended to be extended into new concrete classes that you define.

  • AbstractSet
  • AbstractList
  • AbstractMap

Therefore, by either using one of the three classes listed above as a starting point, or by starting from scratch and fully implementing one or moreof the interfaces, you can provide new concrete implementations to augment the framework to include collections that meet your special needs. If you do that,be sure to satisfy the contract requirements of the Collections Framework in addition to the technical requirements imposed by implementing interfaces.

Purpose of algorithms

Algorithms are methods (not necessarily exposed) that provide useful capabilities, such as searching and sorting. For example, the Collection interface declares an exposed method named contains .

The contains method

The contract for the contains method requires that the method:

  • receives an incoming reference of type Object as a parameter
  • searches the collection looking for an element that matches the incoming reference
  • returns true if the collection on which the method is called contains the specified element and returns false otherwise.
<< Chapter < Page Page > Chapter >>

Read also:

OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.
Jobilize.com uses cookies to ensure that you get the best experience. By continuing to use Jobilize.com web-site, you agree to the Terms of Use and Privacy Policy.