NAME
Data::ArrayList::ListIterator - iterator for Data::ArrayList
VERSION
version 0.01
SYNOPSIS
use Data::ArrayList;
my $dal = Data::ArrayList->new();
$dal->addAll( 1 .. 100 );
my $iter = $dal->listIterator();
while ( $iter->hasNext ) {
my $idx = $iter->nextIndex;
my $elem = $iter->next;
$iter->add( "$elem from $idx again" );
}
while ( $iter->hasPrevious ) {
my $idx = $iter->previousIndex;
my $elem = $iter->previous;
$iter->remove if $elem =~ / again$/;
}
DESCRIPTION
Data::ArrayList::ListIterator provides iterator for Data::ArrayList.
METHODS
hasNext
while ( $it->hasNext() ) {
say $it->next;
}
Returns true if this list iterator has more elements when traversing the list in the forward direction.
hasPrevious
while ( $it->hasPrevious() ) {
say $it->previous;
}
Returns true if this list iterator has more elements when traversing the list in the reverse direction.
nextIndex
while ( $it->hasNext() ) {
my $index = $it->nextIndex();
$dal->get($index) == $it->next;
}
Returns the index of the element that would be returned by a subsequent call to "next".
Returns list size if the list iterator is at the end of the list.
previousIndex
while ( $it->hasPrevious() ) {
my $index = $it->previousIndex();
$dal->get($index) == $it->previous;
}
Returns the index of the element that would be returned by a subsequent call to "previous".
Returns -1 if the list iterator is at the beginning of the list.
next
while ( $it->hasNext() ) {
say $it->next;
}
Returns the next element in the list. This method may be called repeatedly to iterate through the list, or intermixed with calls to "previous" to go back and forth.
Note: alternating calls to "next" and "previous" will return the same element repeatedly.
previous
while ( $it->hasPrevious() ) {
say $it->previous;
}
Returns the previous element in the list. This method may be called repeatedly to iterate through the list, or intermixed with calls to "next" to go back and forth.
Note: alternating calls to "next" and "previous" will return the same element repeatedly.
remove
while ( $it->hasNext() ) {
say $it->next;
$it->remove;
}
Removes from the list the last element that was returned by "next" or "previous".
This call can only be made once per call to "next" or "previous". It can be made only if "add" has not been called after the last call to "next" or "previous".
set
while ( $it->hasNext() ) {
$it->set( encrypt($it->next) );
}
Replaces the last element returned by "next" or "previous" with the specified element.
This call can be made only if neither "remove" nor "add" have been called after the last call to "next" or "previous".
add
while ( $it->hasNext() ) {
$it->add( $it->next ); # duplicate all elements
}
Inserts the specified element into the list. The element is inserted immediately before the next element that would be returned by "next", if any, and after the next element that would be returned by "previous", if any.
If the list contains no elements, the new element becomes the sole element on the list.
The new element is inserted before the implicit cursor: a subsequent call to "next" would be unaffected, and a subsequent call to "previous" would return the new element.
This call increases by one the value that would be returned by a call to "nextIndex" or "previousIndex".
SEE ALSO
AUTHOR
Alex J. G. Burzyński <ajgb@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2010 by Alex J. G. Burzyński <ajgb@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.