如何迭代一个数组,每次迭代改变元素?

时间:2018-02-27 18:32:38

标签: java arrays

我试图遍历数组并在每次迭代中更改元素索引,例如start 1 0 0 0,然后是下一次迭代0 1 0 0,然后是下一次迭代0 0 1 0,以及最后一次0 0 0 1。

 public static void main(String[] args) {
     int [] b = {0,0,0,0};
     for(int i = 0; i < b.length; i++){
         b[0] = 1;
         b[1] = b[i-1];
         b[i-1] = 0;
     }

    }

2 个答案:

答案 0 :(得分:1)

public static void main(String[] args) {
     int [] b = {0,0,0,0};
     for(int i = 0; i < b.length; i++){
        if(i>0)
         {  
           b[i-1] = 0;
         }
           b[i] = 1;


}

答案 1 :(得分:0)

在将1移动到下一个位置之前,声明起始条件并检查是否到达结尾:

public static void main(String[] args) {
    int [] b = {1,0,0,0};
    for(int i = 0; i < b.length; i++){
        performInterestingStuffWithArray (b);
        b[(i+1) % b.length] = 1;
        b[i] = 0;
    }
}

使用modulo也会起作用,但最后,你的b又是(1,0,0,0)。

public static void main(String[] args) {
    int [] b;
    for(int i = 8; i > 0; i/=2){
        b=genArrayFromBits (i);
        performInterestingStuffWithArray (b);
    }
}

您也可以从二进制表示法的数字生成一个数组,从8到1:

int [] genArrayFromBits (i)

方法session_write_close()留作练习,但实施起来非常简单。