2013-01-20 73 views
0
public static void main(String args[]) 
{ 
    double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88}; 

    ArrayList<Integer> List = new ArrayList<Integer>(); 

    List.add(1); 
    List.add((int) -6.3); 
    List.add(9000); 
    List.add((int) 67.009); 
    List.add((int)1.1); 
    List.add((int)0.0); 
    List.add(-456); 
    List.add(6); 
    List.add(23); 
    List.add((int)451.88); 
} 

public static int ArrayListMax(ArrayList List) 
{ 

    for (int i=0; i<List.size(); ++i) 
    { 
     System.out.println(List.get(i)); 
    } 

的錯誤是:'這個方法必須返回int'Java的結果嗎?

public static int ArrayListMax(ArrayList List) 

這可能是一個非常nooby錯誤,但我是新來的Java所以請原諒我。

請幫忙嗎?

謝謝。

編輯:

我想ArrayListMax方法打印列表的大小!

+0

將此方法聲明爲'public static void ArrayListMax(ArrayList List)',因爲您沒有返回任何東西。 – nhahtdh

+0

您沒有顯示完整的'ArrayListMax'代碼。你可能寫了一個錯誤的退貨聲明或者你錯過了。 – shuangwhywhy

回答

1

假設你正試圖獲得在法arrayListMaxList的最大值,則需要按照你的方法簽名,這錯誤是告訴你

This method must return a result of type int 

除了打印返回一個整數列表中的所有值,你可以這樣做:

public static int arrayListMax(List<Integer> List) { 
    return Collections.max(list); 
} 

使用Java Naming Conventions。方法&變量名以小寫字母開頭。使用這種方法有助於避免實例類型(例如在main方法中的List的情況下)之間的混淆。

0

問題是這種方法:

public static int ArrayListMax(ArrayList List) 
{ 

    for (int i=0; i<List.size(); ++i) 
    { 
     System.out.println(List.get(i)); 
    } 
} 

你是不是從這個方法返回時,你必須返回一個int類型來解決這個錯誤。因爲你已經指定int作爲返回類型。

0

您創建的函數爲返回結果

public static int ArrayListMax(ArrayList List) 

爲了消除你的問題,如果你不需要任何回報,寫

public static void ArrayListMax(ArrayList List) 

void意味着你不想要的方法返回結果。

1

要麼添加return語句將ArrayListMax()方法返回一個int或改變方法簽名從public static intpublic static void。方法也添加了一個關閉}

此外,您不應該使用List作爲該方法參數的名稱,因爲它是您在此代碼中實際導入的接口的名稱。 java中的約定是以一個小寫字母(駝峯大小寫)和類名開頭的大寫字母(pascal大小寫)開頭的變量名和方法名。

0

如果您只是打印出值,那麼簽名應該是public static void ArrayListMax(ArrayList List)。

0

第一個,即使您已將retun類型設置爲int,也不會返回任何含ArrayListMax方法的任何東西。從列表中直接打印時,請返回void

其次,即使你設置正確的返回類型ArrayListMax方法,你仍然需要調用該方法在main方法如下:

public static void main(String args[]) 
{ 
    double arr[] = {1,-6.3,9000,67.009,1.1,0.0,-456,6,23,-451.88}; 

    ArrayList<Integer> List = new ArrayList<Integer>(); 

    List.add(1); 
    List.add((int) -6.3); 
    List.add(9000); 
    List.add((int) 67.009); 
    List.add((int)1.1); 
    List.add((int)0.0); 
    List.add(-456); 
    List.add(6); 
    List.add(23); 
    List.add((int)451.88); 
    YourClassNameInWhichMethodIs.ArrayListMax(List); 
} 
0

你應該使用return語句了Methode正在返回一個int類型的值。

相關問題