JAVA第二个循环中数组的新值

时间:2017-04-18 10:47:26

标签: java arrays loops

我有int数组的问题。我在循环中放入了数组测量值,当数组已满时,index设置为0并递增1。 但是在第二个循环数组中没有填充新值。 我尝试用这个来清除数据:

RedData=new int[1001];

但没有任何反应。程序在所有循环中都可以,但我只对这个数组有问题。

你能推荐我什么吗?

1 个答案:

答案 0 :(得分:0)

它是Android的应用程序 在主要活动中我调用方法解析(数据)

int[] RedData = new int[1001];
int peak1=0,peak2=0,peak3=0,index1=0,index2=0,index3=0,pr1,pr2;
double pulseRate=0;
private int i =0;
private OxiParams mOxiParams;
private OnDataChangeListener mOnDataChangeListener;



public void parse(int[] packageDat) {

    int  red,ir;

    red= 256*256*packageDat[1]+256*packageDat[2]+packageDat[3];
    ir = 256*256*packageDat[4]+256*packageDat[5]+packageDat[6];

    RedData[i] = red;
    if(i>20) {
        if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i] && peak1 == 0) {
            peak1 = RedData[i - 10];
            index1 = i - 10;
        }
        if (peak1 > 0 && i > (index1 + 25) && peak2 == 0) {
            if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i]) {
                peak2 = RedData[i - 10];
                index2 = i - 10;
            }
        }
        if (peak2 > 0 && i > (index1 + 25) && peak3 == 0) {
            if (RedData[i - 10] >= RedData[i - 20] && RedData[i - 10] > RedData[i]) {
                peak3 = RedData[i - 10];
                index3 = i - 10;
            }
        }
        pr1 = (index2 - index1) * 10;
        pr2 = (index3 - index2) * 10;
        if (pr1 > 0 && Math.abs(pr1 - pr2) < 100) {
            pulseRate = 60000 / (pr1 + pr2);
        }
    }

    if((int)pulseRate != mOxiParams.pulseRate )
    {
        mOxiParams.update((int)pulseRate);
        mOnDataChangeListener.onSpO2ParamsChanged();
    }

    if(i<1000)
    {
        i++;
    }
    else
    {
        i=0;
        RedData=new int[1001];
    }
}

这里是代码文件Github SPO2 Android