|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--structure.AbstractIterator | +--structure.ArrayIterator
A conveniece class that provies a mechanism to iterate over arrays that is analogous to the iteration techniques employed by the structures in this package.
Example Usage:
To prove that loops are faster than iteration we could use the following:
public static void main(String[] argv){ //a randomly generated test string String testString = "For loops are much faster than iterators"; //an array over which to iterate String[] test = new String[10000000]; //longs to calculate lenght of computation long start, finish, iteration, looping; //populate test array with our test string for(int i=0; i<test.length; i++) test[i] = testString; //compute test for iteration start = System.currentTimeMillis(); for(Iterator
i = newArrayIterator(test)
; i.hasNext()
;i.next()
){} finish = System.currentTimeMillis(); iteration = finish - start; System.out.println("Iteration over array took " + iteration + " milliseconds to perform."); //compute test for looping start = System.currentTimeMillis(); for(int i=0; i<test.length; i++){} finish = System.currentTimeMillis(); looping = finish - start; System.out.println("Looping over array took " + (finish-start) + " milliseconds to perform."); System.out.println("Iterators are " + (iteration/(double)looping) + " times " + "slower than loops."); }
Field Summary | |
protected int |
count
The number of elements in the array over which to iterate |
protected int |
current
The current item in the iteration |
protected Object[] |
data
The array over which this iterator iterates |
protected int |
head
The index of the first item in the iteration |
protected int |
remaining
The number of items remaining in the itearation |
Constructor Summary | |
ArrayIterator(Object[] source)
Construct an iterator that iterates over the entire contents of an array. |
|
ArrayIterator(Object[] source,
int first,
int size)
Constructs an iterator that will iterate over a specified portion of the source array. |
Method Summary | |
Object |
get()
Return the object currently specified by the iteration without advancing the iterator to the next object. |
boolean |
hasNext()
Returns true iff there are elements specified by our iterator that have not been visited by the current iteration. |
static void |
main(String[] argv)
test code to prove that iterators are slower than for loops |
Object |
next()
Return the next object in our iteration and advance the iterator to the next object in the iteration. |
void |
reset()
Return the iteration to the original state specified by the constructor. |
Methods inherited from class structure.AbstractIterator |
hasMoreElements, nextElement, remove, value |
Methods inherited from class java.lang.Object |
|
Field Detail |
protected Object[] data
protected int head
protected int count
protected int current
protected int remaining
Constructor Detail |
public ArrayIterator(Object[] source)
source
- The array over which to iterate.public ArrayIterator(Object[] source, int first, int size)
source
- The array over which to iterate.first
- The index at which we will start our iteration.size
- The number of elements following that start index
that are to be iterated over.Method Detail |
public void reset()
reset
in class AbstractIterator
public boolean hasNext()
hasNext
in class AbstractIterator
public Object next()
next
in class AbstractIterator
public Object get()
get
in class AbstractIterator
public static void main(String[] argv)
|
© 1998-2002 McGraw-Hill | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |