我已经很久没写过java了,我知道我的问题很简单,但我不能为我的生活找出错误。
我正在尝试使用以下代码找到数组中的最小数字。该算法是正确的,但我在最后一个打印语句中尝试使用它时出现错误
package runtime;
import java.util.ArrayList;
public class app {
/**
* @param args the command line arguments
*/
public int findSmallElement(ArrayList<Integer> num)
{
int smElement;
smElement= num.get(0);
for(int i=0; i<num.size() ; i++)
if(num.get(i) < smElement)
smElement=num.get(i);
return smElement;
}
public static void main(String[] args) {
ArrayList<Object> num = new ArrayList<Object>();
num.add(100);
num.add(80);
num.add(40);
num.add(20);
num.add(60);
System.out.println("The size of the list is " +num.size());
System.out.println(num.findSmallElement());
}
}
答案 0 :(得分:1)
你试图在没有这个方法的ArrayList变量/对象上调用你的方法,而是想要在你自己的类的实例上调用它。您应该将数组列表传递给此方法。
另一种选择是让你的方法保持静态,只需单独调用它,再次传入arraylist。
// add the static modifier
public static int findSmallElement(ArrayList<Integer> num)
然后打电话给:
// pass the ArrayList into your findSmallElement method call
int smallestElement = findSmallElement(num);
// display the result:
System.out.println("smallest element: " + smallestElement);
答案 1 :(得分:1)
ArrayList
不拥有findSmallElement
方法。制作方法static
并将其称为num
,如
System.out.println(findSmallElement(num));
和强>
public static int findSmallElement(ArrayList<Integer> num)
答案 2 :(得分:1)
与其他所有其他方法一样,您可以创建一个对象并通过它调用它,而不是让您的方法成为静态,我觉得这样更方便
App app = new App();
int smallestElement = app.findSmallElement(sum);
System.out.println("smallest element: " + smallestElement);
我不太确定,但我认为这很有效。
答案 3 :(得分:0)
从static
上下文调用时,应调用另一个static
。
所以只需将你的功能改为static
,如:
public static int findSmallElement(ArrayList<Integer> num){...}
提示:尝试查看当您尝试使用非静态函数的全局静态变量时发生的情况。