有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java不断地向前和向后推进索引,没有循环

我正在使用ArrayList进行一个项目,在这个项目中,我只需要推进一次索引,但当它到达最后一个索引时,我需要它返回到0索引,然后重新开始。如果我可以使用循环,这就足够简单了,但我需要它在调用方法时只向前(或向后)推进一个索引。 有人对如何做到这一点有什么建议吗

我为缺乏信息而道歉。我正在制作一个布尔对象的arraylist,我要做的是使它在调用我的方法时,使下一个索引为真(其他为假),我的问题是让它在最后一个索引处停止,并反向运行

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

真假假假

假真假假

假假真假

假假假真

假假真假

假真假假

很抱歉给你带来了混乱


共 (1) 个答案

  1. # 1 楼答案

    假设数组是一个字段:

    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;
    }
    

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