Appendix A, Choosing a Collection
Introduction
The Essential Tools Module has an abundance of collection classes—when you are faced with choosing which one to use in your code, it may seem like an overabundance! This section provides suggestions and information that will help you select the most appropriate collection for a given programming task.
Choosing the most appropriate collection class to fit your needs is not a trivial task. First you need to consider the data in your collection. Does your collection need to store the data in order? Will there be duplicate data? And, how do you find or insert data in your collection? The first part of this appendix,
Selecting an Essential Tools Module Collection Class includes a decision tree diagram that lets you consider specific questions about your data and, through your answers, quickly focus on the collections that will best fit your data requirements. A preface to the decision tree discusses questions you'll see in the tree and includes some additional selection criteria that discuss issues such as whether to choose a pointer or value-based collections, when to use sequential collections, and what to use for disk-based access.
The second part of this appendix,
Time and Space Considerations presents a rough comparison of how much time and memory different collections and collection families need to perform common operations such as insertions, finds, and removals.