如何调用Arraylist方法?

时间:2014-10-25 03:35:24

标签: java methods arraylist

我有一个方法:

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的正确方法是什么,这样一个方法可以实现它呢?

3 个答案:

答案 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中声明。