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. }
Search WWH ::




Custom Search