3 回答

TA貢獻(xiàn)1887條經(jīng)驗(yàn) 獲得超5個(gè)贊
查看java.util.LinkedList或java.util.ArrayList
List<Integer> x = new ArrayList<Integer>();
x.add(1);
x.add(2);

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
Java中的數(shù)組具有固定的大小,因此您不能像在PHP中那樣“在末尾添加內(nèi)容”。
與PHP行為有點(diǎn)類似:
int[] addElement(int[] org, int added) {
int[] result = Arrays.copyOf(org, org.length +1);
result[org.length] = added;
return result;
}
然后您可以編寫:
x = new int[0];
x = addElement(x, 1);
x = addElement(x, 2);
System.out.println(Arrays.toString(x));
但是,這種方案對(duì)于較大的陣列而言效率極低,因?yàn)樗看味紩?huì)復(fù)制整個(gè)陣列。(實(shí)際上,它并不完全等同于PHP,因?yàn)槟呐f數(shù)組保持不變)。
實(shí)際上,PHP數(shù)組與Java HashMap完全相同,只是添加了“最大鍵”,因此它將知道接下來要使用哪個(gè)鍵以及一個(gè)奇怪的迭代順序(以及整數(shù)鍵和某些字符串之間的等效關(guān)系)。但是對(duì)于簡單的索引集合,最好像其他答復(fù)者一樣使用Java中的List。
如果List由于將每個(gè)int包裝在Integer中的開銷而避免使用,請(qǐng)考慮對(duì)原始類型使用集合的重新實(shí)現(xiàn),這些類型在內(nèi)部使用數(shù)組,但僅當(dāng)內(nèi)部數(shù)組已滿時(shí)才會(huì)對(duì)每個(gè)更改進(jìn)行復(fù)制(就像ArrayList一樣)。(一個(gè)快速搜索過的示例就是此IntList類。)
番石榴含有制造這種包裝方法中Ints.asList,Longs.asList等等。
添加回答
舉報(bào)