使用参数在java中反转数组

时间:2016-01-17 23:04:22

标签: java arrays

我想要反转数组,所以当我输入

1 4 5 6

我希望程序返回

6 5 4 1

这是我编码但我不断收到arrayIndexOutOfBoundException错误。

import java.io.*;
import java.util.*;

public class Oef9
{

    public int[] array_oef9 (int[] array1){
        int lengte=array1.length;
        int[] array= new int[lengte];

        for (int i=0; i<lengte;i++ ){
            array[lengte]=array1[i];
            lengte=lengte-1;
        }
        return array;

    }
}

4 个答案:

答案 0 :(得分:1)

之所以这样做是因为你使用lengte作为数组的长度。新数组的第一个索引应该比长度少1。 lengte为4,最后一个指数为3.

public class Oef9{

public int[] array_oef9 (int[] array1){
    int lengte=array1.length;
    int[] array= new int[lengte];

    for (int i=0; i<array1.length;i++ ){
        array[--lengte]=array1[i];
    }
    return array;
} 
}

希望这能帮助你蒂娜。如果您需要进一步澄清,请告诉我们:)

答案 1 :(得分:1)

   for (int i=0; i<lengte;i++ ){
        array[lengte - 1 - i]=array1[i];

    }

尝试使用此代替当前循环。您当前正在传递长度作为索引,但最大可能的索引是length - 1.

答案 2 :(得分:1)

数组中的最后一个元素位于<header>位置。

最好尝试从头到尾迭代,如下所示:

length-1

答案 3 :(得分:0)

如果您不需要使用数组

int j = 0;
for(int i = lengte - 1, i >= 0, i--) {
    array[j] = array1[i];
    j++;
}

很好。

或者,您可以使用以下

Collections.reverse(List)