gpt4 book ai didi

java - 在 Java 中调整同名数组的大小

转载 作者:行者123 更新时间:2023-12-02 03:46:41 25 4
gpt4 key购买 nike

我正在尝试将数组大小调整为“push”方法,但在输出中数字“6”不存在。

有什么线索吗?

public void push(int value) {
if (size != maxSize){
top++;
stackArray[top] = value;
size++;
}else if (size == maxSize){
stackArray = Arrays.copyOf(stackArray, size * 2);
maxSize = size * 2;
size++;
}else{
throw new RuntimeException();
}
}

弹出方法

public int pop() {
if (size != 0){
size--;
return stackArray[top--];
} else {
throw new RuntimeException();
}
}

我在该堆栈上放置了一些元素

Stack theStack= new Stack(5);

theStack.push(1);
theStack.push(2);
theStack.push(3);
theStack.push(4);
theStack.push(5);
theStack.push(6);
theStack.push(7);

System.out.println(theStack.pop());
System.out.println(theStack.pop());
System.out.println(theStack.pop());
System.out.println(theStack.pop());
System.out.println(theStack.pop());
System.out.println(theStack.pop());

然后我就得到了这个

7 5 4 3 2 1

最佳答案

size == maxSize的情况下,调整数组大小后不会添加6。请将您的方法修改为类似这样的内容。

现在,您首先要调整大小(如果需要)。然后正常插入。

public void push(int value) {
// resize if required
if (size == maxSize){
stackArray = Arrays.copyOf(stackArray, size * 2);
maxSize = size * 2;
}

// then do the addition to the array stuff
if (size != maxSize){
top++;
stackArray[top] = value;
size++;
} else {
throw new RuntimeException();
}
}

关于java - 在 Java 中调整同名数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36231046/

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