私はGoogleに回答を試みたが、間違ったキーワードを使用していると思う。私がしようとしているのは、 - 私は数値(ints)のコレクションを持って、私は新しい平均を計算している新しい数字を追加します。私は配列が大きくなるにつれて、ある要素の数(200とする)になると、計算時間が顕著になることに気付きました。私は私のコードのパフォーマンスをスピードアップするために利用できる内蔵のSDK関数があるのだろうかと思っていたのですか? Android上でコードを実行します。Javaの任意のSDK関数がスタックに番号をプッシュして平均を計算しますか?
sum -= oldest_value;
sum += new_value;
avg = (double)sum/num_elements;
あなたがcircular bufferとしてあなたのアレイを使用する必要があり、あなたのアレイを介したびに、すべての要素をシフトすることを避けるために:
int[] numbers = new int[3];
private int average(int number){
//some buildin operation to push in array an int?
for(int i=0; i < numbers.length -1 ; i++){
numbers[i]=numbers[i+1];
}
numbers[numbers.length -1] = number;
;
//numbers[0] = numbers[1];
//numbers[1] = numbers[2];
//numbers[2] = number;
int sum = 0;
//any operation to get average?
for(int i=0; i < numbers.length ; i++)
sum = sum + numbers[i];
//calculate average value
double average = sum/numbers.length;
return (int)average;
}
は、あなたは配列内の平均値を取得したいですか? – Kris
私はあなたの質問を全く理解していません。あなたは平均を計算したいが、問題は何ですか?あなたのコードの最初のループは何ですか? –
この関数が正確に計算するために与えられていることを教えてください。 –