Junior — Middle
ArrayList strukturuna yeni element əlavə etmək üçün hansı addımlar atılır?
sobes.tech Süni İntellekt
AI-dan cavab
ArrayList-ə yeni element əlavə edilərkən aşağıdakı addımlar həyata keçirilir:
- Cari daxili massiv (adətən Object[]) yeni elementi saxlamaq üçün kifayət qədər böyükdürmü yoxlanılır.
- Əgər yer kifayət deyilsə, artırılmış ölçüdə (adətən 50% və ya 1.5 dəfə daha böyük) yeni massiv yaradılır və bütün elementlər ona köçürülür.
- Yeni element daxili massivdə ilk boş yerə yerləşdirilir.
- Siyahının ölçü sayacı (size) artırılır.
Əksər hallarda element əlavə etmək aşağıdakı kimi olur:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // massiv yoxlanılır və genişləndirilir
elementData[size++] = e; // element əlavə edilir və ölçü artırılır
return true;
}
private void ensureCapacityInternal(int minCapacity) {
if (minCapacity - elementData.length > 0)
grow(minCapacity);
}
private void grow(int minCapacity) {
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + (oldCapacity >> 1); // 50% artırma
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}