Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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 队列已满时增加数组大小的排队方法_Java_Insert_Queue - Fatal编程技术网

Java 队列已满时增加数组大小的排队方法

Java 队列已满时增加数组大小的排队方法,java,insert,queue,Java,Insert,Queue,目前,我正在处理队列,并且已经编写了一个将元素添加到队列的排队方法。每当队列已满时,我都会返回一条消息,说明队列无法插入更多元素。现在,我的任务是更改enqueue方法,无论何时尝试插入元素,都要将数组大小限制提高一倍,这样理论上,该项将添加到新的扩展数组中,并且永远不会失败到完整队列中。我怎样才能做到这一点,任何事情都是有帮助的 代码 您只需创建一个新数组,其大小为items的两倍,然后从items复制所有项目,并再次调用排队方法 public void enqueue(Object newI

目前,我正在处理队列,并且已经编写了一个将元素添加到队列的排队方法。每当队列已满时,我都会返回一条消息,说明队列无法插入更多元素。现在,我的任务是更改enqueue方法,无论何时尝试插入元素,都要将数组大小限制提高一倍,这样理论上,该项将添加到新的扩展数组中,并且永远不会失败到完整队列中。我怎样才能做到这一点,任何事情都是有帮助的

代码


您只需创建一个新数组,其大小为
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);
    }
}