我正在使用Android加速计传感器数据。我将通过使用传感器数据来识别用户的运动模式。大部分工作已经完成。但问题是跟踪连续轴值并将它们存储在2D阵列中。作为测试应用程序,我想用以下类型的数据填充double[2][3]
数组。
[9.594786195244101, 7.118138482942524, 14.240399748761671],
[9.45045389772222, 7.35019779174396, 13.271781719935262]
可以填充数组。但问题是,我想重新填充相同的数组以获取下一组值。这是我的代码。
double[][] test;
static int sampleNumber = 1;
static int j = 1;
public void onSensorChanged(SensorEvent event) {
if (started) {
if(sampleNumber == (j*2)-1)
{
test = null;
test = new double[2][3];
j+=1;
}
test[sampleNumber-1][0] = magAvg;
test[sampleNumber-1][1] = magMin;
test[sampleNumber-1][2] = magMax;
sampleNumber += 1;
}
}
执行此代码时,如果sampleNumber = 3,则获取ArrayOutOfBoundsException。 我想在sampleNumber = 1,3,5,...
时创建一个新数组或开始重新填充相同的数组我该怎么做?
答案 0 :(得分:0)
在您的情况下,您可以使用2-D ArrayList
而不是2-D数组。
ArrayList<ArrayList<Integer>>
答案 1 :(得分:0)
无论如何,你正在创建测试阵列2 * 3 ...... 当sampleNumber = 3时,你想要像这样填充数组:
test[2][0] = magAvg;
test[2][1] = magMin;
test[2][2] = magMax;
但您正在使用
创建测试数组new double[2][3]
然后测试只有0和1作为索引,访问index = 2超出绑定异常