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

List假设您试图在方法中获取最大值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 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

如果您只是打印出值,则签名应该是 public static void ArrayListMax(ArrayList List)。

于 2013-01-20T15:57:24.347 回答
0

首先ArrayListMax,即使您已将其 retun 类型设置为,您也不会使用方法返回任何内容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

您应该使用 return 语句,因为 Methode 返回一个 int 类型值。

于 2013-01-20T16:20:28.367 回答