Java 将元素添加到主方法之外的Arraylist中
有没有办法在main方法之外声明我的arraylist?下面的代码给了我一个错误,在token;,@预料之中Java 将元素添加到主方法之外的Arraylist中,java,Java,有没有办法在main方法之外声明我的arraylist?下面的代码给了我一个错误,在token;,@预料之中 import java.util.ArrayList; public class ArrayListPractice { static ArrayList<Integer> x = new ArrayList<Integer>(); x.add(0); x.add(50); x.add(100); public st
import java.util.ArrayList;
public class ArrayListPractice {
static ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(50);
x.add(100);
public static void main(String args[]){
System.out.println(x);
}
}
我可以解决这个问题,如果我的主方法中有所有的语句,那么它就会工作并将数组打印到控制台。问题是,在一个更大的程序中,该数组不可用于其他方法。例如,在下面的代码中,x无法解析
import java.util.ArrayList;
public class ArrayListPractice {
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
我怎样才能着手解决这个问题?最好的答案将解释如何做到这两个方面。也就是说,通过在主方法中声明arraylist而不是在主方法之外声明arraylist,同时确保x对其他方法可用。尽管我希望得到任何答案,特别是如果只能用一种方法来实现的话。阅读java教程中关于类的内容。您可以在类字段中保存信息,然后可以通过类方法访问该信息。
例如:否您不能在方法之外添加元素。但是,您可以创建一个静态方法,为您向数组中添加元素
public static void addElement(int i){
x.add(i);
}
这样,您可以将元素作为参数传递。这将起作用
import java.util.ArrayList;
public class ArrayListPractice {
public static ArrayList<Integer> x = new ArrayList<Integer>();
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
如果要将所有代码移到main方法之外,则需要使用静态初始值设定项
import java.util.ArrayList;
public class ArrayListPractice {
public static ArrayList<Integer> x = new ArrayList<Integer>();
static {
x.add(0);
x.add(50);
x.add(100);
}
static void printSecondElement(){
System.out.println(x.get(1));
}
public static void main(String args[]){
System.out.println(x);
printSecondElement();
}
}
这应该很好:
import java.util.ArrayList;
public class ArrayListPractice
{
static ArrayList<Integer> x = new ArrayList<Integer>();
static void printSecondElement()
{
System.out.println(x.get(1));
}
public static void main(String args[])
{
x.add(0);
x.add(50);
x.add(100);
System.out.println(x);
printSecondElement();
}
}
原因是x.add0是一个处理/执行语句,应该放在main之类的方法中。
像ArrayList x这样的声明语句可以放在方法外部,但应该放在类内部。另一种方法是包含构造函数并在其中添加数据。当然,您必须初始化一个类obj,比如
import java.util.ArrayList;
public class ArrayListPractice {
static ArrayList<Integer> x = new ArrayList<Integer>();
public ArrayListPractice() {
x.add(0);
x.add(50);
x.add(100);
}
public static void main(String args[]){
ArrayListPractice obj = new ArrayListPractice();
System.out.println(x);
}
}