您不能將元素「追加」到Java中的數組。數組的長度在創建時確定,不能動態改變。
如果你真的需要一個long[]
的解決方案是創建一個更大的陣列,拷貝過來的元素,並指出了參照新的陣列,像這樣:
long[] s = new long[] {0, 1, 2};
long[] toAppend = { 3, 4, 5 };
long[] tmp = new long[s.length + toAppend.length];
System.arraycopy(s, 0, tmp, 0, s.length);
System.arraycopy(toAppend, 0, tmp, s.length, toAppend.length);
s = tmp; // s == { 0, 1, 2, 3, 4, 5 }
然而,你可能想爲此目的使用ArrayList<Long>
。在這種情況下,您可以使用.add
-方法追加元素。如果您選擇此選項,它應該看起來像
// Initialize with 0, 1, 2
ArrayList<Long> s = new ArrayList<Long>(Arrays.asList(0L, 1L, 2L));
// Append 3, 4, 5
s.add(3L);
s.add(4L);
s.add(5L);
long[] longArray = new long[s.size()];
for (int i = 0; i < s.size(); i++)
longArray[i] = s.get(i);
感謝您對arraycopy的幫助我正在查看arraylist選項 – ben 2011-02-28 16:31:25
介意如何使用arraylist?我需要的輸出是一個很長的[],這樣的Android振動功能將工作 – ben 2011-02-28 16:37:04
@aaioobe:我知道移動設備越來越快,但如果Android API期望長[]而不是列表{長}它的一個原因:不必要的包裝**將殺死移動設備的perf/battery/etc。 – Gugussee 2011-02-28 16:49:59