簡體   English   中英

Java - 如何訪問另一個類的ArrayList?

[英]Java - How to access an ArrayList of another class?

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

您可以通過提供課程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 ); }
      ...
}

您可以執行以下操作:

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

兩種方式

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<int> getNumberList() {
        ArrayList<int> numbersList= new ArrayList<int>();
        numbersList.add(number1);
        numberList.add(number2);
        ....
        return numberList;
    }
}

然后,在您的測試類中,您可以調用numbers.getNumberList()來獲取您的arrayList。 此外,您可能希望在數字類中創建addToList / removeFromList等方法,以便您可以按照需要的方式處理它。

您還可以從另一個類中訪問一個類中聲明的變量

numbers.numberList;

如果你把它公之於眾。

但是在我看來這不是一個好習慣,因為您可能需要稍后在代碼中修改此列表。 請注意,您必須將您的類添加到導入列表中。

如果您能告訴我您的應用程序要求是什么,我將能夠更准確地告訴您我認為最好的做法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM