2013-04-11 81 views
0

我有一個包含用戶將輸入其元素的數組列表的類。我想我可以成功地添加元素到這個數組列表中,但是我無法確定,因爲我無法輸出數組列表。我想在主程序中調用viewNYC方法,並在cmd提示符下顯示它的元素列表。任何人都可以幫忙嗎?在for循環中返回一系列打印語句

import java.util.*; 

class Hotels{ 

    public static ArrayList NYC = new ArrayList(); 

    public static String[] NYCArray = (String[])NYC.toArray(new String[NYC.size()]); 

    public static void addNYC(String hotel){ 
     String NYChotel = hotel; 
     NYC.add(NYChotel); 
    } 


    public static void viewNYC(){ //Will be called in main programme 

     for(int i=0; i< NYCArray.length; i++){ 
      return System.out.println(i+1 + ") \t" + NYCArray[i]); 
     } 
    } 
} 
+0

現在有什麼問題? – 2013-04-11 13:34:09

回答

1

viewNYC返回類型是void。在for環取出return關鍵字:

for (int i = 0; i < NYCArray.length; i++) { 
    System.out.println(i + 1 + ") \t" + NYCArray[i]); // no "return" 
} 
0

是您的程序編譯becuse應該通過編譯錯誤的(無效方法不能返回值)

return System.out.println(i+1 + ") \t" + NYCArray[i]); 

因爲

System.out.println() 

不會返回任何東西。如果您想打印一個數組使用

System.out.println(Arrays.deepToString(NYCArray)); 
0

首先,從系統輸出刪除return語句:

System.out.println(i + 1 + ") \t" + NYCArray[i]); 

另外,如果我看了你的代碼,我可以看到你有一個靜態字符串[] NYCArray將不會在您的代碼示例中更新。

因此,如果您添加NYC酒店,它將不會在NYCArray中可見,此更新應在addNYC (使用ArrayList的新大小創建新Array並將內容設置爲ArrayList內容)

0

你的確在增加紐約市的元素,但這些改變不會反映在NYCArray中。 線:

public static String[] NYCArray = (String[])NYC.toArray(new String[NYC.size()]); 

將聲明NYCArray作爲一個字符串數組,並且其初始值設置爲NYC的陣列「複製」。然而,該線路只會運行一次,而在那一點上紐約市仍然是空的!

如果你要打印NYC的內容,這樣做:

System.out.println(Arrays.toString(NYC.toArray())); 

除非你有一個很好的理由保持它,我就會改掉NYCArray完全。