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

时间:2013-05-09 12:48:41

标签: 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;
}

我的问题是:我想存储数字1&将number2变量放入ArrayList,然后从类test中访问此ArrayList。我怎么能这样做?

5 个答案:

答案 0 :(得分:20)

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 !
   }
}

答案 1 :(得分:3)

您可以通过在课程numbers中提供

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

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

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

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 ); }
      ...
}

答案 2 :(得分:3)

您可以执行以下操作:

  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);
    }

    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);
    }
  }

答案 3 :(得分:1)

两种方式

1)为first class

实例化arrayList和getter

2)将arraylist设为static

最后

Java Basics By Oracle

答案 4 :(得分:1)

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

import java.util.ArrayList;
    public class numbers {

    private int number1 = 50;
    private int number2 = 100;

    public ArrayList<int> getNumberList() {
        ArrayList<int> numbersList= new ArrayList<int>();
        numbersList.add(number1);
        numberList.add(number2);
        ....
        return numberList;
    }
}

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

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

一样
numbers.numberList;

如果您将其声明为公开。

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

如果你能告诉我你的应用程序要求是什么,我会告诉你更准确的我认为最好做的事情。