Overview

Introduction

Collection classes, also called data structures or data types, are important in many software applications as they provide programmers with the means to organize data in an efficient and convenient manner. As data is accessed and manipulated in a variety of ways, there is a need for a wide range of collection classes. Java's standard package java.util provides many but not all of the most commonly used data structures. lamborne fills the gaps by providing Queue, PriorityQueue, Stack, SortedCollection, Heap, Tree, Bag, and Graph. This is done in a manner which is consistent with the conventions established in java.util yet is easy to understand.

We developed lamborne in conjunction with a textbook on data structures. Not having access to a full range of well designed collection classes that were simultaneously consistent with java.util, we decided to write our own. To use collection classes sensibly, programmers need to understand the performance characteristics of various implementations.  Therefore, throughout our textbook we usually start with a couple of simple, trimmed down prototypes of each data type, compare the performance characteristics of each, and then show how the prototypes can be extended to a professional version that is part of a hierarchy of collection classes. We do this for the collection classes in lamborne and in java.util.

We believe that lamborne serves as a model for how to develop a framework of collection classes and as a tool that students can use throughout the computer science curriculum. We also expect professional programmers to find lamborne useful.

Finally, we designed lamborne to be extensible. By defining the basic data types in terms of interfaces and by using inheritance and abstract classes during implementation, we have created a framework into which it is easy to add new implementations of a data type tuned to the computational needs of particular problems.

Types of methods

Each lamborne class includes two types of methods. First are methods specific to a particular class. Second are methods common to collections throughout java.util

In addition, many lamborne collections include the method 

collectionView

which returns a java.util Collection, thus making a large range of Collection methods directly accessible to users of lamborne classes.

Additional Information

Additional information about collection classes in general and lamborne in particular is contained in:

Ken Lambert and Martin Osborne, Java: A Framework for Program Design and Data Structures, published by Brooks/Cole, 2000.