AVA-集合フレームワーク(2)
ArrayList
ArrayListはListインタフェースを実現しているため、データの格納順序を維持し、重複を許容するという特徴がある.
アレイにより多くのストレージ容量がない場合は、より大きな新しいアレイを作成し、既存のアレイに格納されている内容を新しいアレイにコピーして保存します.
ArrayListを作成する場合は、保存する要素の数を考慮して、実際に保存する要素の数よりやや大きく設定することが望ましい.作成時に、格納されたオブジェクトが指定したサイズを超えると、自動的にオブジェクトのサイズが増加しますが、処理時間がかかります.
データの読み取りと格納は効率的ですが、容量を変更する必要がある場合は、新しいアレイを作成し、既存のアレイから新しく作成したアレイにデータをコピーする必要があるため、効率はかなり低くなります.
したがって、格納するデータの数を考慮してから、十分なインスタンスを生成することが望ましい.
removeメソッドの例)
public Object remove(int index){
Object oldObj = null;
if(index < 0 \\ index >= size)
throw new IndexOutOfBoundsException("범위를 벗어났습니다.");
oldObj = data [index];
if(index != size-1){
System.arraycopy(data, index+1, data, index, size-index-1);
}
data[size-1] = null;
size--;
return oldObj;
}
Object Remove(int index)メソッドは、指定した位置(index)のオブジェクトを削除し、削除したオブジェクトを返すように記述されます.削除するオブジェクトの真下のデータを1つずつ上にコピーし、削除するオブジェクトを上書きするように処理します.削除するオブジェクトが最後のデータである場合は、コピーせずにnullに変更します.プロセス
削除するインデックスデータの後のインデックスデータを1つずつ上にコピーし、削除するデータを上書きします.
System.arrycopy(data,3, data, 2, 2)
2つのデータを//data[3]からdata[2]にコピーします.
データはすべて1つのグリッドを上に移動し、最後のデータはnullに変更する必要があります.
data[size-1] = null;
データが削除されるため、データの数が減少するため、sizeの値は1減少する.
size--;
Reference
この問題について(AVA-集合フレームワーク(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@jo_dbsgh95/JAVA-컬렉션-프레임웍Collections-Framework-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol