What is Iterator - PowerPoint PPT Presentation

1 / 9
About This Presentation
Title:

What is Iterator

Description:

Not Related to the direction/fashion with which the collection is traversed. How to ... Avoids the ugly, and sometimes bug-prone index/cursor management (int i ... – PowerPoint PPT presentation

Number of Views:43
Avg rating:3.0/5.0
Slides: 10
Provided by: rjlor
Category:
Tags: bug | fashion | iterator

less

Transcript and Presenter's Notes

Title: What is Iterator


1
What is Iterator
  • Category Behavioral
  • Generic Way to Traverse Collection
  • Not Related to Collection Implementation Details
  • Not Related to the direction/fashion with which
    the collection is traversed

2
How to Use Iterator
  • Implementation Details
  • Have a class (Class A) with which iteration makes
    sense
  • Create a class (Class B) that implements the
    java.util.Iterator interface
  • Class B should manage the iteration state over
    Class A for a single client.
  • Usage Details
  • Call constructing iterator() method on collection
    object.
  • Use Iterator object returned to iterate elements
    (next(), hasNext())

3
How to Use Iterator
  • Example Iterator implementation (note similar to
    actual Java implementation)
  • // Note Some features are not implemented
  • public class VectorIterator implements
    java.util.Iterator
  • private Vector collection
  • private int cursor0
  • public VectorIterator(Vector toIterate)
  • collection toIterate
  • public boolean hasNext()
  • return (cursor lt collection.size())
  • public void next()
  • cursor
  • Object next collection.get(cursor)

4
How to Use Iterator
  • Traditional Looping
  • Vector aVector new Vector()
  • // load vector with elements
  • // Implementation omitted
  • for(int i0 iltaVector.size()i)
  • Object anElem aVector.get(i)
  • Iterator Looping
  • Vector aVector new Vector()
  • // load vector with elements
  • // Implementation omitted
  • Iterator elements aVector.iterator()
  • while(elements.hasNext())
  • Object anElem elements.next()

5
Class Diagram
  • From (Stephen Stelting, Olav Maassen, Applied
    Java Patterns)

6
Why Iterator
  • Hides details of Collection Traversal
  • Avoids the ugly, and sometimes bug-prone
    index/cursor management (int i)
  • The iterator pattern can be used to disperse the
    cost of expensive object construction

7
In the Real World
  • Java has built in Iterator Support for the
    Collections Library (java.util.Iterator)
  • Vector, ArrayList, LinkedList, HashSet, TreeSet,
    etc (Collection.iterator() method).
  • Iterator may be traversing an Array, a
    LinkedList, or even a binary tree, but the code
    using the library knows no difference.
  • Developers can reuse the Iterator interface for
    their own libraries/implementations

8
In the Real World
  • Iterator can be used to defer expensive reads
    such as database calls and file parsing until it
    is actually necessary.
  • In combination with the factory pattern,
    collection type choices can be completely
    abstracted from the program, and into
    configuration files.

9
Advanced Java Examples
  • public class CollectionsExample
  • public static void main(String args)
  • Collection collectionA null
  • collectionA createCollection(args)
  • iterateCollection(collectionA)
  • public static Collection createCollection(String
    args)
  • Collection collection null
  • if(args0.equals(Vector))
  • // returns a index based list walking iterator
  • collection new Vector()
  • else if(args0.equals(TreeSet))
  • // returns a tree walking iterator.
  • collection new TreeSet()
  • return collection
Write a Comment
User Comments (0)
About PowerShow.com