嘿家伙,我已经搜索了网络并且很难找到这个问题的答案,所以我认为这可能是不可能的,我是否能够使用一种方法来调用单个数组变量,每次调用都从 index[0] 开始每次我调用该方法遍历整个数组时递增 1?或者有没有更好的方法来做到这一点,比如每次都删除第一个数组变量?
感谢您的帮助,请记住,我是一个初学者,只是想学习做事的最佳方式。
据我了解,您想要类似Iterator的东西,这是完全可能的。这是一个例子:
public class IteratorTest{
static int[] numbers = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
static int index = 0;
public static void main(String[] args){
for (int i = 0; i < 10; i++){
System.out.println(getNext());
}
}
public static int getNext(){
return numbers[index++];
}
}
调用时会getNext()
抛出异常,index >= numbers.length
但这几乎是我能理解的想法。
编辑
我在这里有一个 ArrayIterator,我认为上面的代码会更具说教性。但是,如果 Iterator 的实现很有趣(正如@David Conrad 建议的那样),我在这里有一个:
public class ArrayIterator<E> implements Iterator<E>{
private E[] elements;
private int index;
public ArrayIterator(E[] elements){
this.elements = elements;
index = 0;
}
@Override
public boolean hasNext(){
return index < elements.length;
}
@Override
public E next(){
if(!hasNext()){
throw new NoSuchElementException("No more elements in the array.");
}
return elements[index++];
}
@Override
public void remove(){
throw new UnsupportedOperationException("Remove operation is not supported.");
}
}
你的问题有点不清楚,但我认为这是你想做的事情的要点
for (int i = 0; i < someArray.length; i++) {
someFunction(someArray[i]);
}
当然你需要确定someArray
并且someFunction
被定义。