let\'s say I have this simple MyArray class, with two simple methods: add, delete and an iterator. In the main method we can see how it is supposed to be used:
In my opinion it is better to implement MyArray as common Iterable object, so it can be used in a for statement.
My suggestion:
/**
* My array
*/
public class MyArray implements Iterable
{
/**
* Internal used iterator.
*/
private class MyArrayIterator implements Iterator
{
private MyArray _array;
/**
* @param array The underlying array.
*/
public MyArrayIterator(MyArray array)
{
this._array = array;
}
/**
* Gets the underlying array.
*
* @return The underlying array.
*/
public MyArray getArray() {
return this._array;
}
@Override
public boolean hasNext() {
// TODO Auto-generated method stub
return false;
}
@Override
public TItem next() {
// TODO Auto-generated method stub
return null;
}
@Override
public void remove() {
// TODO Auto-generated method stub
}
}
public void add(int el){
// do add
}
public void delete(){
// do delete
}
@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return new MyArrayIterator(this);
}
}
As I said you can use it in a for statement:
private static void test(MyArray strArray)
{
for (String str: strArray) {
// do something
}
}