gpt4 book ai didi

java - 返回单个数组值,每个方法调用从索引 0 开始,每次调用递增 1。

转载 作者:行者123 更新时间:2023-12-02 07:05:29 26 4
gpt4 key购买 nike

嘿,我已经在网上搜索过,很难找到这个问题的答案,所以我认为这可能是不可能的,我是否能够使用一种方法来调用单个数组变量,每次调用都从索引开始[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++];
}

}

index >=numbers.length 时调用 getNext() 会抛出异常,但这几乎是我能理解的想法。

<小时/>

编辑

我这里有一个 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.");
}

}

关于java - 返回单个数组值,每个方法调用从索引 0 开始,每次调用递增 1。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com