嘿,我已經搜索了網絡,我很難找到這個問題的答案,所以我認爲這可能是不可能的,我能夠使用一個方法來調用一個單一的數組變量,每次調用從索引開始[ 0],每次我調用方法遍歷整個數組時,遞增1?或者是否有更好的方法來做到這一點,比如每次刪除第一個數組變量?返回一個數組值,每個方法調用從索引0開始,每次調用時遞增1。
感謝您的幫助,並牢記我是一個begginer,我只是想學習最好的方式來做事情。
嘿,我已經搜索了網絡,我很難找到這個問題的答案,所以我認爲這可能是不可能的,我能夠使用一個方法來調用一個單一的數組變量,每次調用從索引開始[ 0],每次我調用方法遍歷整個數組時,遞增1?或者是否有更好的方法來做到這一點,比如每次刪除第一個數組變量?返回一個數組值,每個方法調用從索引0開始,每次調用時遞增1。
感謝您的幫助,並牢記我是一個begginer,我只是想學習最好的方式來做事情。
從我理解你想要的東西像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,我想上面的代碼會更說教。但是,如果迭代器的實現是有趣的(如@大衛康拉德建議),我有一個就在這裏:
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.");
}
}
您應該'實現java.util.Iterator
@DavidConrad,我添加了一個通用ArrayIterator的例子 – 2013-04-23 21:23:09
我正要做+1,但隨後你的答案開始變得越來越複雜。 – 2013-04-23 21:41:38
你的問題是有點不清楚,但我認爲這是你想要做
for (int i = 0; i < someArray.length; i++) {
someFunction(someArray[i]);
}
當然
你需要確保someArray
和someFunction
定義了什麼要點。
這段代碼將在整個數組中通過for循環打印出來。我想要做的是打印每個方法調用每個下一個數組變量從0開始。 – ivanthemeh 2013-04-23 23:10:41
如果你想具體在陣列位置的值,那麼是有可能 - 這是與傳遞任何其他價值。我希望看到你所指的是一個例子,因爲它並不完全清楚問題。 – Makoto 2013-04-23 19:42:14
你的問題不清楚。語句_「每次調用都調用一個數組變量」_沒有意義。一個不會「調用」數組變量。從你的描述中,你可能只需要一個簡單的數組訪問循環,如下面的@hvgotcodes所描述的那樣,但是你也可以尋找一種順序_returns_數組的元素......即數組迭代器的方法。這是什麼? – 2013-04-23 19:43:27
它通常有助於用一個例子來解釋... – Dukeling 2013-04-23 19:49:38