【发布时间】:2017-01-12 16:57:56
【问题描述】:
我有一个使用 ArrayList 的方法。但我的加速度计值是双倍的。 如何将 Double 转换为 ArrayList,以便在我实现的方法中找到 TotalAccelermeter 的峰值。 提前致谢。 我还有一些其他问题,比如我的 List 在我传递 Double 时是浮动的。
@Override
public final void onSensorChanged(SensorEvent event) {
// The light sensor returns a single value.
// Many sensors return 3 values, one for each axis.
double xx=event.values[0];
double yy=event.values[1];
double zz=event.values[2];
double TotalAccelerate=Math.round(Math.sqrt(Math.pow(xx, 2)
+Math.pow(yy, 2)
+Math.pow(zz, 2)));
sensorText.setText("Total: " + TotalAccelerate);
Log.i(DEBUG,"Total "+ TotalAccelerate);
ArrayList<Double> list = new ArrayList<Double>();
list.toArray(TotalAccelerate);
findPeaks(TotalAccelerate);
}
//Find peak values.
public static ArrayList<Float> findPeaks(List<Float> points) {
ArrayList<Float> peaks = new ArrayList<Float>();
if (points == null || points.size() < 1)
return peaks;
float x1_n_ref = 0;
int alpha = 0; //0=down, 1=up.
int size = points.size();// -1)/100;
for (int i = 0; i < size; i += 5) {
float IndexValues = points.get(i);
if (IndexValues > 140) {
float delta = x1_n_ref - IndexValues;
if (delta < 0) {
x1_n_ref = IndexValues;
alpha = 1;
} else if (alpha == 1 && delta > 0) {
peaks.add(x1_n_ref);
alpha = 0;
}
} else if (alpha == 0) {
x1_n_ref = IndexValues;
}
}
return peaks;
}
【问题讨论】:
-
要向列表中添加值,请使用 .add 方法:
list.add(TotalAccelerate)
标签: java android arrays arraylist