我有一个方法:
public static ArrayList<Integer>Iterate(int n){
ArrayList<Integer> numbers = new ArrayList<Integer>(n);{
Random rand = new Random();
rand.setSeed(System.currentTimeMillis());
for(int i = 0; i<n; ++i){
Integer r = rand.nextInt() %113;
numbers.add(r);
Collections.sort(numbers);
}}
我想在这个数组上使用其他方法来找出有关数字的某些事情。
但是我无法在public static void main(String [] args)
中打电话给Arraylist。
我尝试过这样的事情:
System.out.println( numbers.methodname);
这样的事情,但Eclipse说数字无法解析为变量 那么调用ArrayList的正确方法是什么,这样一个方法可以实现它呢?
答案 0 :(得分:1)
您可能希望让您的方法返回它创建的ArrayList
,以便它可以被称为您的方法的任何方法使用。您已经获得了正确的方法签名 - 即第一行,即
public static ArrayList<Integer> Iterate(int n){
表示该方法将返回ArrayList<Integer>
类型的内容。现在,您需要在最后}
之前将此行添加到方法的底部。
return numbers;
现在,在您的main
方法或其他任何方法中调用此方法,您可以编写类似
ArrayList<Integer> returnedList = Iterate(10);
或类似的东西,具体取决于您要传递给方法的数字。这声明了一个名为returnedList
的变量,调用该方法,并将该方法返回的ArrayList
分配给您声明的变量。
答案 1 :(得分:0)
numbers
需要在您的方法之外声明,以便其他方法能够访问它。如果在方法中声明变量,则其范围是声明它的方法。
如果您愿意,您仍然可以在方法内初始化变量,但声明必须在外部进行,如下所示:
ArrayList<Integer> numbers = null;
public static ArrayList<Integer> Iterate(int n){
numbers = new ArrayList<Integer>(n);
// code
}
答案 2 :(得分:0)
由于您在Iterate方法中声明了数字变量,因此它不存在于该方法范围之外。这意味着当您处于主要状态时,您无法访问该变量。如果要访问main中的变量,则需要在main中声明。