2015-03-13 99 views
1

我想將arraylist「測試」傳遞給「sortArray」方法並返回它,但我不斷收到錯誤。這是我的代碼,請你幫忙嗎?瞭解「缺少方法體」錯誤

我收到以下錯誤 「失蹤法體」

import java.util.Random; 
import java.util.ArrayList; 

public class SortingArrayListSD 
{ 
    public static void main(String[] args) 
    { 
    ArrayList<Integer> test = new ArrayList<>(); 
    Random r = new Random(); 

    int largest = 0, indexnumber = 0; 

    for (int s = 0 ; s < 10; s++) 
    { 
     test.add(1 + r.nextInt(99)); 
    } 

    System.out.println("ArrayList Before: " + test); 
    test = SortArray(test); 
    System.out.println("ArrayList After: " + test); 
    } 

    public static ArrayList<Integer> SortArray(ArrayList<Integer> test); 
    { 
    ArrayList<Integer> test = new ArrayList<>(); 
    for (int s = 1; s<test.size(); s++) 
    { 
     for (int a = 0; a<test.size(); a++) 
     { 
     if (test.get(s) > test.get(a)) 
     { 
      int temp = test.get(s); 
      test.set(s, test.get(a)); 
      test.set(a, temp); 
     } 
     } 
    } 
    return test; 
    } 
} 
+0

兩個參數和局部變量被稱爲'test' .. – 2015-03-13 10:02:48

+0

**公共靜態的ArrayList SortArray(ArrayList的試驗); ** 從該方法的末尾刪除分號。 另外,更改** ArrayList test = new ArrayList <>(); ** 至 test = new ArrayList <>(); – Anshuman 2015-03-13 10:03:30

回答

4

在此行中刪除;

public static ArrayList<Integer> SortArray(ArrayList<Integer> test);

此外,你應該尊重的Java代碼約定。例如,您的SortArray方法應該被命名爲sortArray

你可以看看Code Conventions for the Java TM Programming Language,或者更實用的方法,你可以看看Google Java Style

不管怎麼說,你可能希望研究Collections(特別是在你的情況http://docs.oracle.com/javase/tutorial/collections/algorithms/index.html#sorting可能會幫)

+0

和內聯括號 – 2015-03-13 10:04:39

+0

非常感謝你我對你的回覆表示歉意,並感謝你的回覆 – 2015-03-13 10:06:20

+0

@Chris Hudson犯錯誤是學習的最佳方式 – antonio 2015-03-13 10:16:39

0

重命名方法本地的ArrayList變量的測試,它將與一個傳入的參數發生衝突。

+0

這是一個好的觀點,但並不是問題提出的錯誤的原因。 – 2015-03-13 10:26:49

+0

@IanRoberts實際原因已經得到解答我指出了另一個錯誤。 – 2015-03-13 11:49:48

0

重命名參數或方法局部變量。 更好的選擇是使用Collections.sort方法進行排序。

+0

這是一個好的觀點,但不是問題提出的錯誤原因。 – 2015-03-13 10:26:28