Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/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-Deque手册-删除最后一个_Java_Deque - Fatal编程技术网

Java-Deque手册-删除最后一个

Java-Deque手册-删除最后一个,java,deque,Java,Deque,我有一些功课要用java实现一个deque系统。我已经创建了其他方法,它们通过了我的测试。然而,我有一个问题,删除最后一个。到目前为止,我已经做到了这一点 //remove the element at the back of the deque public int removeBack() { int size = a.size(); size--; if( size > 0 ) { int last = a.get(size);

我有一些功课要用java实现一个deque系统。我已经创建了其他方法,它们通过了我的测试。然而,我有一个问题,删除最后一个。到目前为止,我已经做到了这一点

//remove the element at the back of the deque
public int removeBack()
{
    int size = a.size();
    size--;

    if( size > 0 )
    {
        int last = a.get(size);
        last--;
        a.remove(last);
    }

    size = a.size();

    return size;
}
以下是JQuery测试失败的原因

    Deque d = new Deque(1);
    d.insertBack(1);
    assertEquals(1, d.length());
    int b = d.removeBack();
    assertEquals(0, b);
    // java.lang.AssertionError: expected:<1> but was:<0>
Deque d=新的Deque(1);
d、 插入背(1);
资产质量(1,d.长度());
int b=d.removeBack();
资产质量(0,b);
//java.lang.AssertionError:应为:但为:
有人有什么想法吗?我真的看不出我在这件事上犯了什么错误


干杯

以下几点看起来不确定:

    int last = a.get(size);
    last--;
    a.remove(last);

我看不出这是如何工作的,无论您希望获取的是索引还是值(它获取的是索引)。

以下内容看起来不确定:

    int last = a.get(size);
    last--;
    a.remove(last);
我看不出这是如何工作的,无论您是希望获取索引还是值(它获取索引)。

您的代码乱七八糟

d.insertBack(1);   <---- you add one element.
assertEquals(0, d.length()); <--- length is expected to be 1
int b = d.removeBack();  <---- you remove one element, and return the new length (!)
assertEquals(1, b); <----- b = length after removing = 0
(注意:返回最后一个元素是标准的,而不是列表大小,必要时可以通过
size()
查询。)

您的代码乱七八糟

d.insertBack(1);   <---- you add one element.
assertEquals(0, d.length()); <--- length is expected to be 1
int b = d.removeBack();  <---- you remove one element, and return the new length (!)
assertEquals(1, b); <----- b = length after removing = 0

(注意:返回最后一个元素是标准的,而不是列表大小,必要时可以通过
size()
查询列表大小。)

assertEquals(0,d.length())-这里的长度不应该已经是1了吗?(这也表明您的插入还没有工作!)
assertEquals(0,d.length())-这里的长度不应该已经是1了吗?(这表明你的插入还没有工作!)哦,是的,.get获取实际的元素,而不是元素的正确位置?我只是看了一下,除非我错过了阅读。我上面的假设是正确的,它得到的是元素的值,而不是元素的索引。因此,不需要最后一个?哦,是的,.get获取实际元素,而不是元素的位置正确吗?我只是看了一下,除非我读错了。我上面的假设是正确的,它得到的是元素的值,而不是元素的索引。这样就不需要最后一个了?好吧,现在你还是误解了
remove
。它使用索引。否则,如果列表中有重复的数字,它应该删除哪个?实际上,有一个,从列表中删除第一个出现的数字。虽然,我非常同意这个特殊的
remove
应该是,接受索引。我知道,这就是为什么我问他:它不会删除最后一个元素,但例如在
123441
中它会删除第一个。好吧,现在你仍然误解了
remove
。它使用索引。否则,如果列表中有重复的数字,它应该删除哪个?实际上,有一个,从列表中删除第一个出现的数字。尽管如此,我强烈同意这个特殊的
remove
应该是,接受索引。我知道,这就是为什么我问他:它不会删除最后一个元素,但例如在
12341
中,它会删除第一个元素。