Java 将元素添加到主方法之外的Arraylist中

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

有没有办法在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 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);
    }
}