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

2022-09-02 12:34:35

你好,我是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;
}

我的问题是:我想将数字1和数字2变量存储到ArrayList中,然后从类测试中访问这个ArrayList。我该怎么做?


答案 1
import java.util.ArrayList;
public class numbers {
   private int number1 = 50;
   private int number2 = 100;
   private List<Integer> list;

   public numbers() {
       list = new ArrayList<Integer>();
       list.add(number1);
       list.add(number2);
   }

   public List<Integer> getList() {
       return list;
   }
}

和测试类:

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

   //example
   public test() {
     number = new numbers();
     List<Integer> list = number.getList();
     //hurray !
   }
}


答案 2

您可以通过在课堂上提供以下内容来执行此操作:numbers

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

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

案例 1(简单 getter):

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

情况 2(不可修改的包装器):

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

案例3(具体方法):

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

推荐