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));
    }

エラーは次のとおりです。

  public static int ArrayListMax(ArrayList List) 

これはおそらく非常に厄介な間違いですが、私は Java を初めて使用するので、ご容赦ください。

何か助けてください。

ありがとうございました。

編集:

ArrayListMax メソッドでリストのサイズを出力したい!

4

7 に答える 7

1

を返すreturnステートメントをメソッドに追加するか、メソッド シグネチャを からに変更します。メソッドにもクロージングを追加します。ArrayListMax()intpublic static intpublic static void}

また、Listこのコードで実際にインポートしているインターフェイスの名前であるため、そのメソッドへの引数の名前として使用しないでください。Java の規則では、変数名とメソッド名は小文字 (キャメル ケース) で始まり、クラス名は大文字 (パスカル ケース) で始まります。

于 2013-01-20T15:56:20.440 に答える
1

Listmethodで最大値を取得しようとしていると仮定するとarrayListMax、メソッドのシグネチャに従って整数を返す必要があります。これは、エラーが伝えていることです。

This method must return a result of type int

リスト内のすべての値を出力する代わりに、次のことができます。

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

Java 命名規則を使用します。メソッドと変数の名前は小文字で始まります。このアプローチを使用すると、インスタンスとタイプの間の混乱を避けることができます (たとえばListmainメソッド内の場合)。

于 2013-01-20T16:01:42.617 に答える
0

値を出力するだけの場合、署名は public static void ArrayListMax(ArrayList List) にする必要があります。

于 2013-01-20T15:57:24.347 に答える
0

問題はこの方法にあります:

public static int ArrayListMax(ArrayList List)
{

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

このメソッドから戻るのではなく、そのエラーを解決するには int 型を返す必要があります。戻り値の型として int を指定したためです。

于 2013-01-20T15:56:11.873 に答える
0

結果を返す関数を作成しました

public static int ArrayListMax(ArrayList List) 

問題を解決するために、何も返す必要がない場合は、次のように書いてください。

public static void ArrayListMax(ArrayList List) 

voidメソッドが結果を返さないことを意味します。

于 2013-01-20T15:56:11.937 に答える
0

まずArrayListMax、メソッドの戻り値の型を に設定しても、メソッドで何も返されませんintvoidリストから直接印刷しているので、どちらかを返します。

次に、メソッドに正しい戻り値の型を設定したとしても、以下のよう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);
}
于 2013-01-20T16:15:54.440 に答える
0

Methode は int 型の値を返すため、return ステートメントを使用する必要があります。

于 2013-01-20T16:20:28.367 に答える