Java 队列已满时增加数组大小的排队方法
目前,我正在处理队列,并且已经编写了一个将元素添加到队列的排队方法。每当队列已满时,我都会返回一条消息,说明队列无法插入更多元素。现在,我的任务是更改enqueue方法,无论何时尝试插入元素,都要将数组大小限制提高一倍,这样理论上,该项将添加到新的扩展数组中,并且永远不会失败到完整队列中。我怎样才能做到这一点,任何事情都是有帮助的 代码Java 队列已满时增加数组大小的排队方法,java,insert,queue,Java,Insert,Queue,目前,我正在处理队列,并且已经编写了一个将元素添加到队列的排队方法。每当队列已满时,我都会返回一条消息,说明队列无法插入更多元素。现在,我的任务是更改enqueue方法,无论何时尝试插入元素,都要将数组大小限制提高一倍,这样理论上,该项将添加到新的扩展数组中,并且永远不会失败到完整队列中。我怎样才能做到这一点,任何事情都是有帮助的 代码 您只需创建一个新数组,其大小为items的两倍,然后从items复制所有项目,并再次调用排队方法 public void enqueue(Object newI
您只需创建一个新数组,其大小为
items
的两倍,然后从items
复制所有项目,并再次调用排队
方法
public void enqueue(Object newItem){
if (!isFull()){
...
} else {
Object[] newItems = new Object[items.length * 2];
copyFromTo(items, newItems);
items = newItems;
enqueue(newItem);
}
}
欢迎来到stackoverflow,这不是一个“为我做硬件”的网站,你在这里得到的最好的建议是尝试自己做硬件。祝你好运对于copyFromTo,我需要创建一个新方法吗?没错。只需迭代
项
,并为新项
赋值。
public void enqueue(Object newItem){
if (!isFull()){
...
} else {
Object[] newItems = new Object[items.length * 2];
copyFromTo(items, newItems);
items = newItems;
enqueue(newItem);
}
}