我相信代码有效但测试人员代码不是,我不知道为什么。我试图交换数组中的第一个和最后一个值。
public class ArrayMethods {
private int[] values;
public ArrayMethods(int[] initialValues) {
values = initialValues;
}
public void swapFirstAndLast() {
int lastvalplace = values.length;
int firstval = values[0];
values[0] = values[lastvalplace];
values[lastvalplace] = firstval;
}
public static void main(String[] args) {
ArrayMethods initialValues = new ArrayMethods(int[] 50, 32, 4, 9, 2);
swapFirstAndLast = new swapFirstAndLast(values);
}
}
答案 0 :(得分:1)
嗯,这是基本的swap + 0-indexed数组的情况。
int lastElement = values[values.length-1];
values[values.length-1] = values[0];
values[0] = lastElement;
您的代码生成ArrayOutOfBoundsException
,它会给出一个堆栈跟踪,它会打印出问题所在的行以及索引太大的信息。它还为您提供索引。
你有类似的东西:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 26
at ArrayMethods.swapFirstAndLast(ArrayMethods.java:10)
请记住,Java中数组的最后一个元素是array[array.length-1]
还有一个问题。你的主要:
ArrayMethods initialValues = new ArrayMethods(new int[]{50, 32, 4, 9, 2});
initialValues.swapFirstAndLast();