gpt4 book ai didi

JAVA 队列 - 单元测试失败

转载 作者:行者123 更新时间:2023-12-02 05:59:09 30 4
gpt4 key购买 nike

好吧,我正在尝试对我的 DSAQueue 类进行单元测试,它显示我的 isEmpty()isFull()dequeue() 方法失败。

以下是我的 DSAQueue 代码。我认为我的 Dequeue() 方法有问题,我无法弄清楚我哪里出了问题。请帮我查一下。谢谢你!提前!

这是我的代码:

public class DSAQueue {
int count;
Object[] queue;
public static int DEFAULT_CAPACITY = 100;


public DSAQueue(){
count = 0;
queue = new Object[DEFAULT_CAPACITY];
}

public DSAQueue(int maxCapacity){
count = 0;
queue = new Object[maxCapacity];
}

public int getCount(){
return count;
}

public boolean isEmpty(){
boolean empty = (count==0);
return empty;
}

public boolean isFull(){
boolean full = (count == queue.length);
return full;
}

public void enqueue(Object value){

if (isFull())
throw new IllegalArgumentException("Queue is full");
else
queue[count] = value;

count++;
}

public Object dequeue(){
Object frontVal;
frontVal = peek();
count--;
return frontVal;
}

public Object peek(){
Object frontVal;
if (isEmpty())
throw new IllegalArgumentException("Queue is empty");
else
frontVal = queue[0];

return frontVal;
}
}

最佳答案

你是对的,你的 dequeue() 并没有做它名字所暗示的事情:

  • 它使用 peek() 来获取第一项。
  • 它减少了计数,因此保持一致。
  • 但是,它永远不会修改底层数组队列。该元素就保留在那里。

关于JAVA 队列 - 单元测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22815264/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com