Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Arraylist程序测试失败_Java_List_Arraylist - Fatal编程技术网

Java Arraylist程序测试失败

Java Arraylist程序测试失败,java,list,arraylist,Java,List,Arraylist,我正在创建一个程序,当给定一个列表时,返回一个新的整数列表,其中前两个元素保持不变,后面的每个元素是原始列表中以该位置结尾的三个元素的中间值。例如,给定列表:[1,2,3,4,5,6,7,8,9],程序将返回:[1,2,2,3,4,5,6,7,8] 这是我编写的代码,在这里我得到了正确的结果,但它使我的测试人员失败。我不确定我是否漏掉了一个奇怪的案例。是的,你漏掉了一些案例: 如果一个或多个数字相等,则代码不会计算中值 解决方案whitch将根据您的代码工作: public static

我正在创建一个程序,当给定一个列表时,返回一个新的整数列表,其中前两个元素保持不变,后面的每个元素是原始列表中以该位置结尾的三个元素的中间值。例如,给定列表:
[1,2,3,4,5,6,7,8,9]
,程序将返回:
[1,2,2,3,4,5,6,7,8]

这是我编写的代码,在这里我得到了正确的结果,但它使我的测试人员失败。我不确定我是否漏掉了一个奇怪的案例。

是的,你漏掉了一些案例: 如果一个或多个数字相等,则代码不会计算中值

解决方案whitch将根据您的代码工作:

    public static List<Integer> method(List<Integer> items) {
    List<Integer> list = new ArrayList<Integer>();
    int size = items.size();
    if (size == 0) {
        list = Arrays.asList();
    } else if (size == 1) {
        int first = items.get(0);
        list.add(first);
    } else if (size == 2) {
        int first = items.get(0);
        list.add(first);
        int second = items.get(1);
        list.add(second);
    } else {
        int first = items.get(0);
        int second = items.get(1);
        list.add(first);
        list.add(second);
        for (int i = 2; i < size; i++) {
            int med;
            if (items.get(i) <= items.get(i - 1) && items.get(i) >= items.get(i - 2)
                    || items.get(i) >= items.get(i - 1) && items.get(i) <= items.get(i - 2)) {
                med = items.get(i);

            } else if (items.get(i - 1) <= items.get(i) && items.get(i - 1) >= items.get(i - 2)
                    || items.get(i - 1) >= items.get(i) && items.get(i - 1) <= items.get(i - 2)) {
                med = items.get(i - 1);
            } else {
                med = items.get(i - 2);
            }
            list.add(med);
        }
    }
    return list;
}
公共静态列表方法(列表项){
列表=新的ArrayList();
int size=items.size();
如果(大小==0){
list=Arrays.asList();
}否则如果(大小==1){
int first=items.get(0);
列表。添加(第一);
}否则如果(大小==2){
int first=items.get(0);
列表。添加(第一);
int second=items.get(1);
列表。添加(第二);
}否则{
int first=items.get(0);
int second=items.get(1);
列表。添加(第一);
列表。添加(第二);
对于(int i=2;i||items.get(i)>=items.get(i-1)和&items.get(i)=items.get(i)和&items.get(i-1)那么,您的测试人员测试的是什么?您是否一步一步地调试了失败的测试?这是我的类中使用的测试人员。我可以发布其中的代码?我将重点提供一个测试,只提供失败的测试情况。如果您认为您的代码是正确的,您应该仔细检查失败的测试-您同意它的测试内容吗ng?@BeanieLeung我完全同意Jon的观点,一个最小的例子是最好的。但我还是建议你也发布测试代码,它是你评估和示例的一个相关部分。我发布了测试人员