2017-04-18 12 views
-1

私はint配列に問題があります。配列の測定値をループに入れ、配列がいっぱいになるとインデックスは0に設定され、1だけインクリメントされます。 しかし、2番目のループ配列は新しい値で埋められません。 これでデータをクリアしようとします:JAVA 2番目のループに配列する新しい値

RedData=new int[1001]; 

何も起こりません。プログラムはすべてのループでOKですが、私はこの配列だけに問題があります。

私に何かお勧めしますか?

+2

アプリですより良い方法。 – user75ponic

+0

ここに完全なコードを投稿することをお勧めします –

+0

あなたのシナリオを想定するのは難しいでしょうか?あなたのコードを投稿してください –

答えて

0

それは他の人が中にあなたを助けることができるであろうように、あなたの完全なコードスニペットを投稿ここで私は

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

関連する問題