views:

415

answers:

2

I think most coders have used code like the following :


ArrayList<String> myStringList = getStringList();
for(String str : myStringList)
{
   doSomethingWith(str);
}

How can I take advantage of the for each loop with my own classes? Is there an interface I should be implementing?

+17  A: 

You can implement Iterable.

Here's an example. It's not the best, as the object is its own iterator. However it should give you an idea as to what's going on.

Brian Agnew
+2  A: 

You have to implement the Iterable interface, that is to say, you have to implement the method

class MyClass implements Iterable<YourType>
{
Iterator<YourType> iterator()
  {
  return ...;//an iterator over your data
  }
}
Pierre