堆栈不断推送null而不是字符串值Java
我正在做一个项目,我必须将字符串值推送到堆栈中。每当我将第一个值推入堆栈时,它都会毫无问题地进入,但在此之后,我推入的任何元素都会变成“null”。这是我的一些示例代码堆栈不断推送null而不是字符串值Java,java,generics,stack,Java,Generics,Stack,我正在做一个项目,我必须将字符串值推送到堆栈中。每当我将第一个值推入堆栈时,它都会毫无问题地进入,但在此之后,我推入的任何元素都会变成“null”。这是我的一些示例代码 public void push (E element){ if( isEmpty() ){ stack = (E[]) new Object[1]; stack[0] = element; } else { int size = stack.length +
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;
}
公共无效推送(E元素){
if(isEmpty()){
堆栈=(E[])新对象[1];
堆栈[0]=元素;
}否则{
int size=stack.length+1;
E[]tmpStack=(E[])新对象[大小];
对于(int i=0;i
下面是我调用该方法的方式:
String elementArray[] = str.split(",");
for(int i = 0; i < elementArray.length; i++){
stack.push(elementArray[i]);
}
String elementArray[]=str.split(“,”);
for(int i=0;i
您有一个off by one错误。您没有从源堆栈中复制最后一个元素
这:
for(int i=0;i
应该是:
for (int i = 0; i < stack.length; i++ ) {
for(int i=0;i
奖金提示:考虑使用<代码>系统。
for (int i = 0; i < stack.length; i++ ) {