JAVA将新值添加到第二个循环中的数组中

JAVA将新值添加到第二个循环中的数组中,java,arrays,loops,Java,Arrays,Loops,我对int数组有问题。我将数组测量值放入循环中,当数组已满时,索引设置为0并递增1。 但在第二个循环中,数组并没有填充新值。 我尝试用以下方法清除数据: RedData=new int[1001]; 但什么也没发生。程序在所有循环中都正常,但我只有这个数组有问题 你能给我推荐点什么吗?这是android应用程序 在主活动中,我调用方法parse(数据) int[]RedData=newint[1001]; int peak1=0,peak2=0,peak3=0,index1=0,index2=

我对int数组有问题。我将数组测量值放入循环中,当数组已满时,索引设置为0并递增1。 但在第二个循环中,数组并没有填充新值。 我尝试用以下方法清除数据:

RedData=new int[1001];
但什么也没发生。程序在所有循环中都正常,但我只有这个数组有问题

你能给我推荐点什么吗?

这是android应用程序 在主活动中,我调用方法parse(数据)

int[]RedData=newint[1001];
int peak1=0,peak2=0,peak3=0,index1=0,index2=0,index3=0,pr1,pr2;
双脉冲=0;
私有整数i=0;
私人氧氟沙星;
私有OnDataChangeListener mOnDataChangeListener;
公共void解析(int[]packageDat){
红外线;
红色=256*256*packageDat[1]+256*packageDat[2]+packageDat[3];
ir=256*256*packageDat[4]+256*packageDat[5]+packageDat[6];
RedData[i]=红色;
如果(i>20){
如果(RedData[i-10]>=RedData[i-20]&RedData[i-10]>RedData[i]&peak1==0){
peak1=RedData[i-10];
index1=i-10;
}
如果(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;
}
}
如果(峰值2>0&&i>(指数1+25)和峰值3==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;
如果(pr1>0&&Math.abs(pr1-pr2)<100){
脉冲率=60000/(pr1+pr2);
}
}
如果((int)pulseRate!=mOxiParams.pulseRate)
{
mOxiParams.update((int)pulseRate);
mOnDataChangeListener.onSPO2参数设置();
}

如果(I)发布完整的代码片段,以便其他人能够以更好的方式帮助您。我建议您在此发布完整的代码,如果没有代码,则很难假设您的场景?发布代码请提供一个完整的代码来完成您的问题。如果没有代码,则无法回答此问题。目前,此问题无效
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];
    }
}