java - 连续向前和向后推进索引,无循环

标签 java

我正在开发一个使用 ArrayList 的项目,其中我只需要前进一次索引,但是当它到达最后一个索引时,我需要它向后移动到 0 索引,然后重新开始。如果我可以使用循环,这将很简单,但我需要它在调用该方法时仅向前(或向后)推进一个索引。 有人对如何实现这一目标有一些建议吗?

对于缺乏信息,我深表歉意。我正在制作一个 boolean 对象的数组列表,我想做的是使其在调用我的方法时使下一个索引为真(而其他索引为假),我的问题是让它在最后停止索引,然后反向进行。

例如,考虑拉森扫描仪。我的问题是,虽然这对于循环来说很简单,但我需要它在调用方法时仅前进一个索引,而不是连续前进。

真假假假

假真假假

假假真假

假假假假

假假真假

假真假假

等等

抱歉造成困惑

最佳答案

假设数组是一个字段:

Object[] arr;
boolean backwards; //init: false
int current; //init: 0

public Object getNextObject() {
    if (arr.length == 0) {
        throw new IllegalArgumentException("Array cannot be empty!");
    }
    int index;
    if (backwards) {
        index = --current;
        if (index <= 0) {
            backwards = false;
            index = 0;
        }
    } else {
        index = ++current;
        if (index >= arr.length) {
            backwards = true;
            index = arr.length - 1;
        }
    }
    Object back = arr[index];
    current = index;
    return back;
}

这本质上也适用于您使用的任何数据结构(将 .length.size() 交换等)

关于java - 连续向前和向后推进索引,无循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22017760/

相关文章:

java - 使用 java 流对数组列表中的数据进行排名

java - 如何将我的 J2ME 应用程序放入移动设备中?

java - java中的空指针异常字符串二维数组

java - 关闭服务器按钮问题

java - while 中的多个条件;第二个条件从不适用

java - 如何对 map /字典进行 ASN.1 编码?

java - 为什么我的基于 SOAP 的项目可以在不包含 Apache CXF 依赖项的情况下运行?

Java RMI NoSuchObjectException

java - 创建图像模型

java - mockito 回调和获取参数值