使用参数在java中反转数组
我想反转一个数组,所以当我输入使用参数在java中反转数组,java,arrays,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= ne
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;
}
}
import java.io.*;
导入java.util.*;
公共类Oef9
{
公共int[]数组\u oef9(int[]数组1){
int lengte=阵列1.长度;
int[]数组=新的int[lengte];
对于(int i=0;i它这样做的原因是因为使用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;
}
}
公共类Oef9{
公共int[]数组\u oef9(int[]数组1){
int lengte=阵列1.长度;
int[]数组=新的int[lengte];
for(int i=0;ifor(int i=0;i数组中的最后一个元素位于length-1
位置
最好尝试从头到尾迭代,如下所示:
int j = 0;
for(int i = lengte - 1, i >= 0, i--) {
array[j] = array1[i];
j++;
}
如果不需要使用数组
Collections.reverse(List)
会很好的
或者,您可以使用以下命令
public static void main(String[] args) {
int[] array = { 2,9,5,6,3 };
int[] reversed = new int[array.length];
for (int i = array.length; i > 0; i--) {
reversed[reversed.length - i] = array[i-1];
}
for (int j : reversed) {
System.out.print(j + ",");
}
}
你需要给你的长度一个额外的空间;不要在循环中更新lengte
,因为它也在循环中使用,否则i
和lengte
将在迭代进行到一半时“相遇”。可能重复
public static void main(String[] args) {
int[] array = { 2,9,5,6,3 };
int[] reversed = new int[array.length];
for (int i = array.length; i > 0; i--) {
reversed[reversed.length - i] = array[i-1];
}
for (int j : reversed) {
System.out.print(j + ",");
}
}