我正在开发一个项目,我必须将字符串值插入堆栈。每当我将第一个值插入堆栈时,它都会毫无问题地进入,但之后我插入的任何元素都会变成“null”。这是我的一些示例代码
public void push (E element){
if( isEmpty() ){
stack = (E[]) new Object[1];
stack[0] = element;
} else {
int size = stack.length + 1;
E[] tmpStack = (E[]) new Object[size];
for (int i = 0; i < stack.length - 1; i++ ) {
tmpStack[i] = stack[i];
}
stack = tmpStack;
tmpStack = null;
stack[size - 1] = element;
}
这是我调用该方法的方式:
String elementArray[] = str.split(",");
for(int i = 0; i < elementArray.length; i++){
stack.push(elementArray[i]);
}
最佳答案
您遇到了差一错误。您没有从源堆栈中复制最后一个元素。
这个:
for (int i = 0; i < stack.length - 1; i++ ) {
应该是:
for (int i = 0; i < stack.length; i++ ) {
额外提示:考虑使用System.arraycopy
。
关于java - 堆栈不断推送 null 而不是 String 值 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838346/