我正在使用一个循环数组实现一个队列,我有点陷入resize()方法实现(当数组已满).
在enqueue()方法内部,我检查数组的大小是否等于它的长度,并获得它是否已满.现在,我没有抛出异常,而是试图调整数组的大小.
问题是,我有两个案例需要考虑
将旧数组的元素复制到新的较大数组中的最佳方法是什么?
我认为它使用for循环,如:
newArray = new Array[oldArray.length*2];
if (front <= rear) {
for (int i = front; i < rear; i++) {
newArray[i] = oldArray[i];
}
} else {
for (int i = front; i < newArray.length; i++) {
newArray[i] = oldArray[i];
}
for (int j = rear; j < front; j++) {
// i'm using the variable i, the order is maintained
newArray[i] …Run Code Online (Sandbox Code Playgroud)