Java Reference
In-Depth Information
Example 2.19
Iterating.java
1. import java.util.Iterator;
2. import java.io.Serializable;
3. public interface Iterating extends Serializable{
4. public Iterator getIterator();
5. }
The
ToDoList
and
ToDoListCollection
interfaces, which extend the
Iterating
interface, define the two
collections in the example.
ToDoList
defines a sequential list of tasks or items, while
ToDoListCollection
represents a collection of
ToDoLists
stored in the PIM.
Example 2.20
ToDoList.java
1. public interface ToDoList extends Iterating{
2. public void add(String item);
3. public void add(String item, int position);
4. public void remove(String item);
5. public int getNumberOfItems();
6. public String getListName();
7. public void setListName(String newListName);
8. }
Example 2.21
ToDoListCollection.java
1. public interface ToDoListCollection extends Iterating{
2. public void add(ToDoList list);
3. public void remove(ToDoList list);
4. public int getNumberOfItems();
5. }
The classes
ToDoListImpl
and
ToDoListCollectionImpl
implement the previous interfaces.
ToDoListImpl
uses an
ArrayList
to hold its elements, which provides absolute ordering and allows duplicate
entries.
ToDoListCollectionImpl
uses a
HashTable
, which does not support ordering and stores its entries
as key-value pairs. Although the collections behave very differently, both can provide Iterators for their stored
elements.
Example 2.22
ToDoListCollectionImpl.java
1. import java.util.Iterator;
2. import java.util.HashMap;
3. public class ToDoListCollectionImpl implements ToDoListCollection{
4. private HashMap lists = new HashMap();
5.
6. public void add(ToDoList list){
7. if (!lists.containsKey(list.getListName())){
8. lists.put(list.getListName(), list);
9. }
10. }
11. public void remove(ToDoList list){
12. if (lists.containsKey(list.getListName())){
13. lists.remove(list.getListName());
14. }
15. }
16. public int getNumberOfItems(){ return lists.size(); }
17. public Iterator getIterator(){ return lists.values().iterator(); }
18. public String toString(){ return getClass().toString(); }
19. }
Example 2.23
ToDoListImpl.java
1. import java.util.Iterator;
2. import java.util.ArrayList;
3. public class ToDoListImpl implements ToDoList{
4. private String listName;
5. private ArrayList items = new ArrayList();
6.
7. public void add(String item){
8. if (!items.contains(item)){
9. items.add(item);
10. }
11. }
12. public void add(String item, int position){
13. if (!items.contains(item)){
14. items.add(position, item);
15. }
16. }