|
© 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 = new ArrayIterator(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 AbstractIteratorpublic boolean hasNext()
hasNext in class AbstractIteratorpublic Object next()
next in class AbstractIteratorpublic Object get()
get in class AbstractIteratorpublic 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 | |||||||