簡體   English   中英

Java將元素附加到基本數組

[英]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.

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