Tip16 元素數量可變的情況下不應使用陣列

2021-08-04 21:11:48 字數 815 閱讀 1961

tip16 元素數量可變的情況下不應使用陣列

陣列一旦被建立,長度就不能改變。如果我們需要乙個動態且可變長度的集合,就應該使用arraylist或list<t>來建立。list<t>是arraylist的泛型實現,它省去了拆箱和裝箱帶來的開銷。

注:不能肆意對陣列指定過大的長度,這會讓陣列成為乙個大物件(占用記憶體超過85000位元組的物件),大物件在**過程中會帶來效率很低的問題。

如果一定要動態改變陣列的長度,一種方法是將陣列轉換為arraylist或list<t>:

int iarr = ;

arraylist arraylistint = arraylist.adapter(iarr);

arraylistint.add(7);

listlistint = iarr.tolist

(); listint.add(7);

另一種方法(效率很低):是用陣列的複製功能,建立乙個名為resize的擴充套件方法,具體如下:

public

static

class

classforextensions

}

呼叫如下:

//呼叫:

int iarr = ;

iarr = (int)iarr.resize(10);

最後建議——在元素數量可變的情況下不應使用陣列

(16)設計模式 享元模式

享元模式 flyweight design pattern 是池技術的重要實現方式。定義為 使用共享的物件可有效地支援大量的細粒度的物件。所謂 享元 顧名思義就是被共享的單元。享元模式的意圖是復用物件,節省記憶體,前提是享元物件是不可變物件。享元模式是乙個非常簡單的模式,它可以大大減少應用程式建立的...

16 組合註解與元註解

元註解 可以在註解類上進行的註解。組合註解 當前註解類上有元註解。使用自定義組合註解,合併配置類中的 configuration和 componentscan target elementtype.type retention retentionpolicy.runtime configuratio...

2020 Simulation 1 6 遞增三元組

問題描述 在數列 a 1 a 2 a n 中,如果對於下標 i,j,k 滿足 0 輸入格式 輸入的第一行包含乙個整數 n。第二行包含 n 個整數 a 1 a 2 a n 相鄰的整數間用空格分隔,表示給定的數列。輸出格式 輸出一行包含乙個整數,表示答案。樣例輸入 51 2 5 3 5 樣例輸出 樣例說...