2014-09-20 50 views
0

發生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(); 
    } 
} 
+0

使用s.size()代替s.capacity( ) – 2014-09-20 14:33:34

+0

使用s.size()並讓我知道是否得到相同的異常 – 2014-09-20 14:34:09

+0

容量用於知道在運行時動態分配給堆棧集合的內存 – 2014-09-20 14:36:27

回答

2

使用size,而不是capacity,如果你想看到多少個項目都在堆棧現在。

可以從這樣的棧中彈出所有項目:

while(!s.isEmpty()) { 
    System.out.println(s.pop()); 
} 
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 
相關問題