【问题标题】:Cant reverse an array of integers using nested for loops无法使用嵌套的 for 循环反转整数数组
【发布时间】:2016-05-18 22:03:34
【问题描述】:

我通过互联网搜索答案。他们中的大多数都使用 temp 来反转整数。但我想通过使用嵌套的 for 循环来做到这一点。也许你会发现这个问题毫无用处。但我需要帮助。所以请...帮帮我!!

public static void main(String[] args) {
    int[] list1= {1, 2, 3, 4};
    int[] list2 = {7, 8, 9, 0};
    int[] list3 = revv(list1);
    int[] list4 = revv(list2);
    System.out.println(list4);
    System.out.println(list3);

}

public static int[] revv(int[] arr) {
    int[] arr2 = null;

    for(int i = 0; i < 4; i++){
        for(int j = arr.length; j>= 0; j--){
            arr[j] = arr2[i];
        }       
    }
    return arr2;

}

【问题讨论】:

  • 您是否尝试过在代码上使用调试器来找出问题所在?
  • 为什么需要嵌套for循环。只需一张arr2[i] = arr[arr.length - i - 1]
  • 除了int j = arr.length还有什么问题?
  • int[] arr2 = null; 和后来的arr2[i]; 看起来很可疑
  • 他们中的大多数都在使用 temp 来反转整数。 Temp 什么?您需要一个临时数组或临时变量才能进行交换。

标签: java arrays reverse


【解决方案1】:

您的方法应如下所示。这里不需要嵌套循环。

public static int[] revv(int[] arr) {
    int[] arr2 = new int[arr.length];

    for (int i = 0 ; i < arr.length ; i++) {
        arr2[i] = arr[arr.length - i - 1];
    }

    return arr2;
} 

建议

要打印数组,请使用Arrays#toString()

System.out.println(Arrays.toString(list3));

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2021-04-24
    • 1970-01-01
    • 2017-09-03
    相关资源
    最近更新 更多