We help IT Professionals succeed at work.

Iterating over ArrayList<>

DJ_AM_Juicebox
on
Medium Priority
3,264 Views
Last Modified: 2008-03-06
Hi,

I'm using an ArrayList iterator like:

ArrayList<String> definitions = new ArrayList<String>();
definitions.add(new String("hello"));
definitions.add(new String("world"));
Iterator<ListType> it = definitions.iterator();
it.next();

Can I just use an element like:

     ((String)it).compareTo("whatever");

Is that cast operation allowed? Or for every time I want to ever use it in a certain scope I need to do:

    String refString = it.next();

Only problem with that is, I better make sure next() is only called once otherwise it increments the internal iterator every time right?

Thanks
Comment
Watch Question

Commented:
>>  ((String)it).compareTo("whatever");

you cannot do this.. ?

>>otherwise it increments the internal iterator every time right?  

yes next() on iterator()  increments the iterator()


Commented:
You have to work like this..


Iterator itr = definitions.iterator();
 
while(itr.hasNext())
{
  String str = itr.next();
  //Work with the string "str"
}

Open in new window

Commented:
Sorry..

above line..

Iterator itr = definitions.iterator();

should be changed to..

Iterator<String> itr = definitions.iterator();

Commented:
you can do like this as an alternative;
        for (int i=0; i<definitions.size(); i++) {
            
            String str = definitions.get(i);
            System.out.println(str);
        }

Open in new window

Commented:
After Java 1.5 you don't need the iterator.

for (String str : definitions) {
   ...
}

this is the foreach of Java, the cycle will run once for each element.

Note: The iterator is there, but you don't see it.

Explore More ContentExplore courses, solutions, and other research materials related to this topic.