有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在另一个数组中存储一个数组的输出循环元素

我编辑了一个java方法,通过比较相邻元素来查找峰值。但是我在输出数组中存储值时遇到了一个问题

这里是编辑的方法,评论是我的问题

public static int[] peakInArray(int[] arr2){
    int i;
    int lenghtInput = arr2.length;
    int[] peaks = new int[lenghtInput];
    for (i = 1; i<arr2.length - 1; i++) {
        if (arr2[i] > arr2[i - 1] && arr2[i] > arr2[i + 1]);
       // PROBLEM: store arr2[i] in peaks
        peaks[i] = arr2[i];
    }
    return peaks;
}

共 (2) 个答案

  1. # 1 楼答案

    感谢所有帮助我解决问题的人,谢谢! 在你的帮助和一些研究的帮助下,我找到了答案

    这里是最后的方法

    public static int[] peakInArray(int[] arr2){
    
        int lengthInput = arr2.length;
        int[] peaks = new int[lengthInput];
        int peakIndex = 0;
    
        for (int i = 1; i<lengthInput - 1; i ++) {
            if (arr2[i] > arr2[i - 1] && arr2[i] > arr2[i + 1]) {
                //Store arr2[i] in peaks
                peaks[peakIndex] = arr2[i];
                peakIndex++;
            }
        }
     return peaks;
    }
    
  2. # 2 楼答案

    就像每个人已经说过的那样,你的if语句不应该按你的方式工作。它需要:

    if(yourComparison){
       peaks[i] = arr2[i];
    }
    

    此外,如果您希望结果只达到所需的大小,则需要使用ArrayList。本页底部有一个示例:

    http://www.tutorialspoint.com/java/java_arraylist_class.htm