[英]Java array declaration without hard coding the size
如何在不對其大小進行硬編碼的情況下初始化另一個類中的類的對象數組?
使用列表 。 在創建List時不需要聲明大小。 toArray()方法將返回列表的數組表示形式。 您可以使用多種實現,但最常用的往往是ArrayList(盡管最好將實現映射到您的特定情況)。
數組在創建后具有固定大小。 在編譯時不需要知道大小,但確實需要在創建時知道它。 例如:
public String[] createArray(int size) {
// Not hard-coded, but array is not expandable
return new String[size];
}
如果您想要一個可以隨着時間的推移而縮小的集合,請查看各種List<E>
實現,例如ArrayList<E>
。
數組的長度是固定的。 我建議使用Collection。
這是一篇關於館藏的文章:
http://en.wikipedia.org/wiki/Java_collections_framework
使用這些,您可以使用Add()命令或類似的東西添加元素。
如前面的答案中所述,ArrayList或List是集合。
對象[]將始終是固定大小。 如果需要可變長度集合,請嘗試使用ArrayList,LinkedList或其他許多集合。
仔細挑選系列,因為它們都有不同的性能方面。
對於可變數組,使用其他容器對象。
使用一組對象時,使用ArrayList或Vector對象。 您還可以使用對象鍵存儲對象,例如“Name”=“Ben”而不是[0] =“Ben”。
Vector v = new Vector();
for(int i = 0; i < 100; i++){
Object o = new Object();
// init object
v.addElement(o);
}
for(int i = 0; i < 100; i++){
Object o = v.elementAt(i);
// manipulate object
}
現在你有一個未定義長度的對象的arbritairy列表。 使用vector.size()方法找到的大小。
java.util包是必需的,是J2SE 1.3及更高版本的一部分。
如其他地方所述,數組對象具有固定的大小。 如果出於某種原因必須使用數組,則可以使用以下一種或兩種技術:
使它比您需要的大,將未使用的條目保留為null。 您可能希望保留“slotsUsed”變量。
當數組變得太小時,做一個更大的數組並將內容復制到其中。
這些都在ArrayList中使用。
您可以創建一個新數組並像這樣初始化它。
String[] strArray = {"Initialize","Array","Like","This"};
如果你想要一個動態大小的數組,我建議使用ArrayList。
如果你想要一個原始數組而不是對象,你可以使用Trove4j。 否則使用ArrayList或CopyOnWriteArrayList來包裝數組。 還有其他List實現,但這些實現不像訪問時間的數組。
有時,如果您知道應用程序需要的對象的上限,則將數組的大小聲明為有用
static final int ARRAY_SIZE = 1000;
這接近課程的開頭,因此可以很容易地改變。 在主代碼中實例化數組
Object[] objects = new Object[ARRAY_SIZE];
此外,如果您要使用的陣列與另一個陣列的大小相同,請考慮使用
Object[] objects = new Object[other_objects.length];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.