这项任务是关于测试数组的。这是我的代码,当运行给出的测试代码时,我们应该可以获得所有结果,但我得到的是我在代码下面发布的内容。 有什么建议吗? 请帮忙
public class ArrayUtils
{
public static int minValue(int[] list) throws BadArrayException
{
if(list == null)
throw new BadArrayException("Array is null");
else if(list.length == 0)
throw new BadArrayException("Array is empty");
int minValue = list[0];
for(int i=1; i < list.length; i++){
if(list[i] < minValue){
minValue = list[i];
}
}
return minValue;
}
public static int[] copyRange(int[] list, int startIndex)
throws BadArrayException{
if (list == null)
throw new BadArrayException("Array is null");
else if (startIndex < 0 || startIndex > list.length)
throw new ArrayIndexOutOfBoundsException(startIndex);
else{
int [] newList = new int [list.length - startIndex];
int x = 0;
int i;
for (i = startIndex; i < list.length; i++)
if (startIndex == 0){
newList[i] = list[i];
}else{
newList[x] = list[i];
x += 1;
}
}
int[] newList = null;
return newList;
}
public static int indexOf(int[] list, int searchValue) throws BadArrayException
{
int indexValue = 0;
if(list == null)
throw new BadArrayException("Array is null");
else if(list.length == 0)
return -1;
for(int i = 0; i < list.length; i++){
if(list[i] == searchValue)
indexValue = i;
}
return indexValue;
}
public static int lastIndexOf(int[] list, int searchValue) throws BadArrayException
{
int indexValue = 0;
int last = list.length;
if(list == null)
throw new BadArrayException("Array is null");
else if(list.length == 0)
return -1;
for(int i = last; i >= 0; i--){
if(list[i] == searchValue)
indexValue = i;
}
return indexValue;
}
}
测试ArrayUtils类异常处理 - 2014年2月2日
---测试minValue方法---
获取null数组的minVal OK - minValue抛出null数组的异常:BadArrayException
获取空数组的minVal OK - minValue为空数组抛出异常:BadArrayException
获得minVal():[10] 好的 - 预期minValue返回10并得到:10
获得minVal():[20,30] 好的 - 预期的minValue返回20并得到:20
获得minVal():[40,30] 好的 - 预期的minValue返回30并获得:30
获得minVal():[10,10] 好的 - 预期minValue返回10并得到:10
获得minVal():[15,25,35] 好的 - 预期minValue返回15并得到:15
获得minVal():[25,20,30] 好的 - 预期的minValue返回20并得到:20
获得minVal():[50,40,30] 好的 - 预期的minValue返回30并获得:30
获得minVal():[50,-10,40,-25,50,40,30] 好的 - 预期minValue返回-25并得到:-25
获得minVal():[200,50,-40,60,-15,30,75] 好的 - 预期minValue返回-40并得到:-40
---测试copyRange方法---
获取null数组的copyRange 好的 - copyRange引发了null数组的异常:BadArrayException
获取:[]的copyRange(list,-1) 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:-1
获取:[]的copyRange(list,0) 错误 - 期望copyRange返回长度为0的数组,但得到一个空数组
获取copyRange(list,1):[] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:1
获取:[20]的copyRange(list,-1) 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:-1
获取:[20]的copyRange(list,0) 错误 - 期望copyRange返回长度为1的数组,但得到一个空数组
获取copyRange(list,1):[20] 错误 - 期望copyRange返回长度为0的数组,但得到一个空数组
获取copyRange(list,2):[20] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:2
获取copyRange(list,-1):[10,15] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:-1
获取copyRange(list,0):[10,15] 错误 - 期望copyRange返回长度为2的数组,但得到一个空数组
获取copyRange(list,1):[10,15] 错误 - 期望copyRange返回长度为1的数组,但得到一个空数组
获取copyRange(list,2):[10,15] 错误 - 期望copyRange返回长度为0的数组,但得到一个空数组
获取copyRange(list,3):[10,15] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:3
获取copyRange(list,-1):[30,35,40,45,50] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:-1
获取copyRange(list,0):[30,35,40,45,50] 错误 - 期望copyRange返回长度为5的数组,但得到一个空数组
获取copyRange(list,1):[30,35,40,45,50] 错误 - 期望copyRange返回长度为4的数组,但得到一个空数组
获取copyRange(list,2):[30,35,40,45,50] 错误 - 期望copyRange返回长度为3的数组,但得到一个空数组
获取copyRange(list,3):[30,35,40,45,50] 错误 - 期望copyRange返回长度为2的数组,但得到一个空数组
获取copyRange(list,4):[30,35,40,45,50] 错误 - 期望copyRange返回长度为1的数组,但得到一个空数组
获取copyRange(list,5):[30,35,40,45,50] 错误 - 期望copyRange返回长度为0的数组,但得到一个空数组
获取copyRange(list,6):[30,35,40,45,50] 好的 - copyRange抛出异常java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:6
---测试indexOf和lastIndexOf方法---
获取null数组的indexOf OK - indexOf抛出了null数组的异常:BadArrayException
获取空数组的lastIndexOf 错误 - lastIndexOf引发了一个意外的异常:java.lang.NullPointerException
获取indexOf(5):[] OK - 期望indexOf返回-1并得到:-1
获取lastIndexOf(5):[] 好的 - 期望lastIndexOf返回-1并得到:-1
获取indexOf(20):[20] OK - 期望indexOf返回0并得到:0
获取indexOf(25):[20] 错误 - 期望indexOf返回-1但得到:0
获取lastIndexOf(20):[20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:1
获取lastIndexOf(25):[20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:1
获取indexOf(5):[5,10,15,20,10,15,5,10,15,20] 错误 - 期望indexOf返回0但得到:6
获得indexOf(10):[5,10,15,20,10,15,5,10,15,20] 错误 - 预期指数返回1但得到:7
获取indexOf(15):[5,10,15,20,10,15,5,10,15,20] 错误 - 预期指数返回2但得到:8
获取indexOf(20):[5,10,15,20,10,15,5,10,15,20] 错误 - 预期指数返回3但得到:9
获取indexOf(0):[5,10,15,20,10,15,5,10,15,20] 错误 - 期望indexOf返回-1但得到:0
获取lastIndexOf(5):[5,10,15,20,10,15,5,10,15,20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:10
获取lastIndexOf(10):[5,10,15,20,10,15,5,10,15,20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:10
获取lastIndexOf(15):[5,10,15,20,10,15,5,10,15,20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:10
获取lastIndexOf(20):[5,10,15,20,10,15,5,10,15,20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:10
获取lastIndexOf(0):[5,10,15,20,10,15,5,10,15,20] 错误 - lastIndexOf引发了一个意外的异常:java.lang.ArrayIndexOutOfBoundsException:10
完成 - 按回车键结束程序
答案 0 :(得分:2)
copyRange
始终返回null:
int[] newList = null;
return newList;
IndexOf
&amp; lastIndexOf
:
阅读IndexOutOfBoundsException
相应地返回正确的值
考虑一下并做出这些修正,我们不能用勺子提供每个答案,也可能还有其他一些我没有解决的错误。