gpt4 book ai didi

java - 如何获取数组的两个峰值的最大值并使用for循环将它们取走?有任何想法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:37 25 4
gpt4 key购买 nike

如何获取数组的两个峰值的最大值并使用for循环将它们取走?有任何想法吗?正在考虑使用 2 个 for 循环来查找数组中的值。我正在使用加速度计并在图表中显示结果,但现在我需要找到 2 个峰值并将它们拿走以确定结果并显示它。

 SM.unregisterListener(this);
File path = getApplicationContext().getExternalFilesDir(null);
File file = new File(path, "my_file-name.txt");
// String filename = "my_file";
FileOutputStream outputStream;

try {
outputStream = new FileOutputStream(file); //openFileOutput(file, Context.MODE_APPEND);
for (double d : array) {
String s = Double.toString(d) + ",";
outputStream.write(s.getBytes());
}

String newline = "/n";
outputStream.write(newline.getBytes());

outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}

此代码值存储在文件中,以便我可以在图表中显示它

最佳答案

以下是如何在一个循环中找到两个峰值的方法:

        File file = new File(path, "my_file-name.txt");
// String filename = "my_file";
FileOutputStream outputStream;

try {
outputStream = new FileOutputStream(file); //openFileOutput(file, Context.MODE_APPEND);
double peak1, peak2;
if(array.length >= 2) {
peak1 = array[0];
peak2 = array[1];
} else { // not enough elements
return;
}
for (double d : array) {
// peak2 is greater, leave it;
// save new value to peak1 ?
if(peak1 < peak2 && d > peak1) {
peak1 = d;
} else if(d > peak2) { // peak1 is greater or d is less
peak2 = d;
}
String s = Double.toString(d) + ",";
outputStream.write(s.getBytes());
}

String newline = "/n";
outputStream.write(newline.getBytes());

outputStream.close();
System.out.println("Peaks: " + peak1 + " ; " + peak2);
} catch (Exception e) {
System.out.println("Error: " + e);
//e.printStackTrace();
}

查看代码示例 here .

关于java - 如何获取数组的两个峰值的最大值并使用for循环将它们取走?有任何想法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50470052/

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