2013-01-20 72 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类型的值。

相关问题