我想要反转数组,所以当我输入
时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;
}
}
答案 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)