如何建立循环以将堆栈放入字符串[]?

时间:2014-09-20 14:26:09

标签: java arrays string stack

发生NullPointerException并且我不知道原因。

import java.util.*;

public class One {
//first class with me handling stacks

    Stack<String> s = new Stack<String>();
    String[] stacks = null;;
    public One(){
        s.push("one");
        s.push("two");
        s.push("three");
        s.push("four");
        s.push("five");
        s.push("six");
        add();
    }

    public void add(){
        for (int i=0;i<s.capacity();i++){
            String temp = (String) s.pop(); //this is the part that gives me a NullPointerException
            System.out.println(temp);
        }
    }

    public static void main(String[] args){
        One obj1 = new One();
    }
}

2 个答案:

答案 0 :(得分:2)

如果您想立即查看堆栈中有多少商品,请使用 size 代替 capacity

您可以像这样弹出堆栈中的所有项目:

while(!s.isEmpty()) {
    System.out.println(s.pop());
}

答案 1 :(得分:0)

使用尺寸而不是容量。

以下是您需要修改的部分

public void add(){
    for (int i=0;i<s.size();i++){
        String temp = (String) s.pop();    //here
        System.out.println(temp);
    }
}

另外,我认为你不需要那里演员 -

String temp = s.pop();    //should do