Java – 如何访问另一个类的ArrayList?

你好,我是Java的初学者,这是我的问题:我的第一堂课有以下变量:

import java.util.ArrayList; public class numbers { private int number1 = 50; private int number2 = 100; } 

我也有这门课:

 import java.util.ArrayList; public class test { private numbers number; } 

我的问题是:我想将number1和number2变量存储到ArrayList中,然后从类test中访问这个ArrayList。 我怎样才能做到这一点?

 import java.util.ArrayList; public class numbers { private int number1 = 50; private int number2 = 100; private List list; public numbers() { list = new ArrayList(); list.add(number1); list.add(number2); } public List getList() { return list; } } 

和测试类:

 import java.util.ArrayList; public class test { private numbers number; //example public test() { number = new numbers(); List list = number.getList(); //hurray ! } } 

您可以执行以下操作:

  public class Numbers { private int number1 = 50; private int number2 = 100; private List list; public Numbers() { list = new ArrayList(); list.add(number1); list.add(number2); } int getNumber(int pos) { return list.get(pos); } } public class Test { private Numbers numbers; public Test(){ numbers = new Numbers(); int number1 = numbers.getNumber(0); int number2 = numbers.getNumber(1); } } 

您可以通过提供课程numbers来完成此操作:

  • 一种返回ArrayList对象本身的方法。
  • 一种返回ArrayList的不可修改包装器的方法。 这可以防止在不知道类号的情况下修改列表。
  • 提供要从类号支持的操作集的方法。 这允许类号控制支持的操作集。

顺便说一句,有一个强烈的约定,Java类名称是大写的。

案例1(简单的吸气剂):

 public class Numbers { private List list; public List getList() { return list; } ... } 

案例2(不可修改的包装):

 public class Numbers { private List list; public List getList() { return Collections.unmodifiableList( list ); } ... } 

案例3(具体方法):

 public class Numbers { private List list; public void addToList( int i ) { list.add(i); } public int getValueAtIndex( int index ) { return list.get( index ); } ... } 

两种方式

1)实例化arrayListfirst class和getter

要么

2)将arraylist设为static

最后

Java基础知识由Oracle提供

将它们放在第一个类的arrayList中,如:

 import java.util.ArrayList; public class numbers { private int number1 = 50; private int number2 = 100; public ArrayList getNumberList() { ArrayList numbersList= new ArrayList(); numbersList.add(number1); numberList.add(number2); .... return numberList; } } 

然后,在您的测试类中,您可以调用numbers.getNumberList()来获取您的arrayList。 此外,您可能希望在数字类中创建addToList / removeFromList等方法,以便您可以按照需要的方式处理它。

您还可以访问另一个类中声明的变量,就像它一样

 numbers.numberList; 

如果你把它宣布为公众。

但是在我看来这不是一个好习惯,因为您可能需要稍后在代码中修改此列表。 请注意,您必须将您的类添加到导入列表中。

如果您能告诉我您的应用程序要求是什么,我将能够更准确地告诉您我认为最好的做法。