Java 如何调用Arraylist方法?
我有一个方法:Java 如何调用Arraylist方法?,java,methods,arraylist,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
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);
}}
诸如此类,但Eclipse说数字不能解析为变量
那么,调用ArrayList的正确方法是什么,这样一个方法就可以实现它
数字
需要在您的方法之外声明,以便其他方法能够访问它。如果在方法内声明变量,则其作用域就是在其中声明的方法
如果选择,您仍然可以在方法内部初始化变量,但必须在外部进行声明,如下所示:
ArrayList<Integer> numbers = null;
public static ArrayList<Integer> Iterate(int n){
numbers = new ArrayList<Integer>(n);
// code
}
arraylistnumber=null;
公共静态数组列表迭代(int n){
编号=新阵列列表(n);
//代码
}
因为您在Iterate方法中声明了numbers变量,所以它不存在于该方法的范围之外。这意味着,当您在main中时,无法访问该变量。如果要访问main中的变量,则需要在main中声明该变量。您可能希望让您的方法返回它创建的ArrayList
,以便它可以被称为您的方法的任何方法使用。您已经获得了正确的方法签名-即,第一行,其中显示
public static ArrayList<Integer> Iterate(int n){
现在,在您的main
方法中,或者在任何其他方法调用此方法的情况下,您可以编写如下内容
ArrayList<Integer> returnedList = Iterate(10);
arraylistreturnedlist=Iterate(10);
或者类似的,取决于要传递给该方法的数字。这将声明一个名为
returnedList
的变量,调用该方法,并将该方法返回的ArrayList
分配给您声明的变量。在方法迭代之外声明numbers
。现在,只有方法Iterate
可以访问该变量。请阅读OOP或Java的基本指南……您的方法声明为返回ArrayList,所以您可能会返回它,对吗?你从main打电话给它,对吗?在main中,您将其返回值分配给什么?另外,为什么每次向列表中添加数字时都对列表进行排序?在您的方法中,似乎从未返回ArrayList
。只需在方法中返回numbers
,然后在main
中执行类似于ArrayList list=Iterate(someValue)
的操作。然后,您可以调用列表上的方法。谢谢,但当我尝试此操作时,它会说:“无法对非静态字段编号进行静态引用”使其正常工作的简短回答:static ArrayList numbers=null代码>-------------------------------------回答得好:在完成这项作业或其他任何内容后,我建议您阅读或观看有关基本OOP的教程。如果你以前也曾匆匆忙忙地完成过任务,那么如果你不真正理解你正在编写的代码,你就走不了多远。
return numbers;
ArrayList<Integer> returnedList = Iterate(10);