[英]Java append element to primitive array
是否可以在Java中的原始數組的末尾追加元素? 例如:如果int[] a = new int[10];
是一個數組。 我怎樣才能在最后添加元素?
編輯:
我不想出於性能原因使用ArrayList,並希望繼續使用原始數組。
使Array
更具動態性的一種方法是創建一個方法,該方法創建一個新的更長的數組並用它替換舊的數組。
例如。
假設你有一個大小為10的int[]
並且它包含數字0到9:
int[] array = new int[10];
for(int i = 0; i < array.length; i++)
array[i] = i;
打印陣列的內容將輸出: 0 1 2 3 4 5 6 7 8 9
現在你可以有這樣的方法:
private int[] appendArray(int[] array, int x){
int[] result = new int[array.length + 1];
for(int i = 0; i < array.length; i++)
result[i] = array[i];
result[result.length - 1] = x;
return result;
}
並執行以下操作
array = appendArray(array, 10);
現在打印陣列的內容將輸出: 0 1 2 3 4 5 6 7 8 9 10
或者,您可以使用基本上做類似事情的ArrayList
。
創建后,Java中的數組大小是固定的。
如果要擁有動態大小的存儲,則需要使用ArrayList
。
另一種方法是創建一個新的(更大的)數組並復制舊數組的內容,但請記住,這在時間和內存上都非常昂貴:
// this is a terrible idea, don't do it
public int[] append(int[] i, int newElement) {
int[] copy = new int[i.length+1];
System.arraycopy(i, 0, copy, 0, i.length);
copy[i.length]= newElement;
return copy;
}
這實際上是ArrayList
在幕后為您做的事情(雖然效率更高),因此如果您要添加很多元素,您將需要從比默認容量10個元素更大的ArrayList
開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.