0

私のクラスの1つに、次のようなメソッドがあります。

public void setArray(int size){

myArray = new int[size]  //myArray is declared already

}

これを呼び出して、たとえば 500 を渡すと、次のようになります。

setArray(500);

そして、後でアプリで必要なのは、たとえば 50 個の要素を持つ配列だけです。現時点では、それをもう一度呼び出して、引数として 50 を渡すだけです。

この配列はアプリ内で何度も参照されていますが、CG が古い配列を収集するかどうか疑問に思っています。

本当にarrayListを使用する必要があることはわかっていますが、残念ながら、コードが数千行で18クラスのサイズになっているため、これは大きな仕事になるでしょう(次のプロジェクトで学んだことだと思います!)

arrayList はどのようにしてこの「舞台裏」を達成するのでしょうか? arrayList の動作をエミュレートできますか? 私が行ったように、単に新しい配列を作成するだけですか?

4

3 に答える 3

0

ArrayList の公式の実装は、配列のサイズを縮小することはなく、必要な場合にのみ容量を増やします。要素が ArrayList から削除されると、後方要素が 1 つの位置を返し、右側の自由要素に null が設定されることが保証されます。

于 2013-08-05T17:52:43.483 に答える