Notes
Slide Show
Outline
1
Collection Classes
  • A Collection class is a data type that is capable of holding a group of items.
  • In Java, Collection classes can be implemented as a class, along with methods to add, remove, and examine items.
2
Bags
  • For the first example, think about a bag.
3
Bags
  • For the first example, think about a bag.
  • Inside the bag are some numbers.
4
Initial State of a Bag
  • When you first begin to use a bag, the bag will be empty.
  • We count on this to be the initial state of any bag that we use.
5
Adding Numbers into a Bag
  • Numbers may be added into a bag.
6
Adding Numbers into a Bag
  • Numbers may be added into a bag.
7
Adding Numbers into a Bag
  • Numbers may be added into a bag.
  • The bag can hold many numbers.
8
added Numbers into a Bag
  • Numbers may be added into a bag.
  • The bag can hold many numbers.
9
added Numbers into a Bag
  • Numbers may be added into a bag.
  • The bag can hold many numbers.
  • We can even place the same number more than once.
10
Adding Numbers into a Bag
  • Numbers may be added into a bag.
  • The bag can hold many numbers.
  • We can even place the same number more than once.
11
Examining a Bag
  • We may ask about the contents of the bag.
12
Removing a Number from a Bag
  • We may remove a number from a bag.
13
Removing a Number from a Bag
  • We may remove a number from a bag.
  • But we remove only one number at a time.
14
How Many Numbers
  • Another operation is to determine how many numbers are in a bag.
15
Summary of the Bag Operations
  • A bag can be put in its initial state, which is an empty bag.
  • Numbers can be added into the bag.
  • You may check how many occurrences of a certain number are in the bag.
  • Numbers can be removed from the bag.
  • You can check how many numbers are in the bag.
16
The Bag Class
  • Java classes (introduced in Chapter 2) can be used to implement a Collection class such as a Bag.
  • The class definition includes:
17
The Bag Class
  • Java classes (introduced in Chapter 2) can be used to implement a Collection class such as a Bag.
  • The class definition includes:
18
 
19
 
20
The Bag’s Constructor
  • Places a bag in the initial state (an empty bag)
21
The Add Method
  • Adds a new number to the bag
22
The Size Method
  • Counts how many integers are in the bag.
23
The countOccurrences Method
  • Counts how many copies of a number occur
24
The Remove Method
  • Removes one copy of a number
25
Using the Bag in a Program
  • Here is typical code from a program that uses the new Bag class:
26
Documentation for the Bag Class
  • The documentation gives specifications for the bag methods.
  • Specifications are written as precondition/postcondition contracts.
  • Everything needed to use the Bag class is included in this documentation.
27
A Quiz
  • Suppose that a Mysterious Benefactor provides you with the Bag class, but you are only permitted to read the documentation.  You cannot read the class implementation or .java file.  Can you write a program that uses the Bag data type ?
  • Yes  I  can.
  • No.  Not unless I see the class implementation for the Bag.
28
A Quiz
  • Suppose that a Mysterious Benefactor provides you with the Bag class, but you are only permitted to read the documentation.  You cannot read the class implementation or .java file.  Can you write a program that uses the Bag data type ?
  • Yes  I  can.
  •    You know the name of the new data type, and you also know the headings and specifications of each of the operations. This is enough for you to create and use Bags.
29
Implementation Details
  • The entries of a bag will be stored in the front part of an array, as shown in this example.
30
Implementation Details
  • The entries may appear in any order. This represents the same bag as the previous one. . .
31
Implementation Details
  • . . . and this also represents the same bag.
32
Implementation Details
  • We also need to keep track of how many numbers are in the bag.
33
An Exercise
  • Use these ideas to write a list of private instance variables could implement the Bag class.  You should have two instance variables.
34
An Exercise
35
An Example of Calling Add
36
An Example of Calling Add
37
An Example of Calling Add
38
Pseudocode for add
  • Make sure there is room for a new entry in the array.
  • Place newEntry in the appropriate location of the data array.
  • Add one to the instance variable manyItems.
39
Pseudocode for add
  • Make sure there is room for a new entry in the array.
  • Place newEntry in the appropriate location of the data array.
  • Add one to the instance variable manyItems.
40
Pseudocode for add
  • Make sure there is room for a new entry in the array.
  • Place newEntry in the appropriate location of the data array.
  • Add one to the instance variable manyItems.
41
The Other Bag Operations
  • Read Section 3.2 for the implementations of the other bag methods.
  • Remember: If you are just using the Bag class, then you don’t need to know how the operations are implemented.
  • Later we will reimplement the bag using more efficient algorithms.
  • We’ll also have a few other operations to manipulate bags.
42
Other Kinds of Bags
  • In this example, we have implemented a bag containing integers.
  • But we could have had a bag of float numbers, a bag of characters, a bag of Strings . . .
43
   Summary
  • A Collection class is a class that can hold a group of items.
  • Collection classes can be implemented with a Java class.
  • The author of the class should provide documentation that another programmer can read to use the class.
  • Other details are given in Section 3.2, which you should read.
44
THE  END