|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object structure.AbstractIterator<ELTTYPE> structure.ArrayIterator<ELTTYPE>
public class ArrayIterator<ELTTYPE>
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."); }
Constructor Summary | |
---|---|
ArrayIterator(ELTTYPE[] source)
Construct an iterator that iterates over the entire contents of an array. |
|
ArrayIterator(ELTTYPE[] source,
int first,
int size)
Constructs an iterator that will iterate over a specified portion of the source array. |
Method Summary | |
---|---|
ELTTYPE |
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(java.lang.String[] argv)
test code to prove that iterators are slower than for loops |
ELTTYPE |
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 |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ArrayIterator(ELTTYPE[] source)
source
- The array over which to iterate.public ArrayIterator(ELTTYPE[] 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<ELTTYPE>
public boolean hasNext()
hasNext
in interface java.util.Iterator<ELTTYPE>
hasNext
in class AbstractIterator<ELTTYPE>
AbstractIterator.hasMoreElements()
public ELTTYPE next()
next
in interface java.util.Iterator<ELTTYPE>
next
in class AbstractIterator<ELTTYPE>
AbstractIterator.hasMoreElements()
,
AbstractIterator.value()
public ELTTYPE get()
get
in class AbstractIterator<ELTTYPE>
public static void main(java.lang.String[] argv)
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |