【发布时间】:2019-04-20 15:37:42
【问题描述】:
我想要的只是让 getLastElement(char[] array) 使用递归返回数组的最后一个元素。此方法只能通过使用 array[0] 访问索引 0。 我可以使用 Arrays.copyOfrange。 我只能修改isSymmetric里面的代码和getLastElement里面的代码。
我已经尝试了以下方法来访问索引 0,但在查找数组的最后一个元素时遇到问题。
代码:
public static char getLastElement(char[] array) {
if (array == null || array.length == 0)
throw new NullPointerException();
if(array.length == 1) {
return array[0];
} else {
return getLastElement(Arrays.copyOfRange(array, 1, array.length));
}
}
public static boolean isSymmetric(char[] array) {
if (array == null)
throw new NullPointerException("Null argument.");
if(array.length <= 1) return true;
if(getLastElement(array) == array[array.length -1])
return isSymmetric(Arrays.copyOfRange(array, 1, array.length-1));
return false;
}
}
我只希望它返回数组的最后一个元素,并且我希望它只能访问数组[0]。
【问题讨论】:
-
我知道这是一个家庭作业或学习练习,但这太荒谬了,令人震惊。在现实生活中,我们永远不会使用递归来访问 array 的最后一个元素,这就是索引的用途。也许如果它是一个链表,我会理解的。教师应该停止提出这种无意义的问题。