gpt4 book ai didi

java - 将 Double 转换为 ArrayList - Android

转载 作者:太空宇宙 更新时间:2023-11-04 11:52:58 24 4
gpt4 key购买 nike

我有一个使用ArrayList的方法。但我得到的加速计值为 double 值。如何将 Double 转换为 ArrayList,以便在我实现的方法中找到 TotalAccelermeter 的峰值。提前致谢。我还有其他一些问题,例如当我传递 Double 时我的列表是 float 的。

@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;
}

最佳答案

您实际上从未将 TotalAccelerate 值添加到 ArrayList(列表)中。您可以使用 ArrayList 的 add 方法来做到这一点:

list.add(TotalAccelerate);

正如您在帖子中提到的,调用 findPeaks 方法时还存在另一个问题。该方法采用 ArrayList<Float>并且您打算通过 ArrayList<Double>到它。替换这个:

findPeaks(TotalAccelerate);

这样:

findPeaks(list);

您需要更改 findPeaks 的方法签名以获取 ArrayList<Double> 。在方法内部,如果您需要 Float,则需要将值从 Double 转换为 Float。

希望这能让您走上正轨。

关于java - 将 Double 转换为 ArrayList - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41618871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com