Junior — Middle
Кадом сохтори додаҳо барои иҷрои массиви динамикӣ монанди ArrayList истифода мешаванд?
sobes.tech AI
Ҷавоб аз AI
Динамик массив, монанд ба ArrayList дар Java, ки ба асоси массиви оддӣ амал мекунад. Ҳикояи асосӣ дар он аст, ки вақте ки андозаи ҳозираи массив ба охир мерасад, массиви нав бо иқтидори зиёдтар (одатан 1.5-2 маротиба калонтар) таъин мешавад ва ҳамаи унсурҳо ба он нусхабардорӣ мешаванд.
Ин имкон медиҳад, ки унсурҳоро самаранок илова кардан бе такрори таъин кардани хотира, бо нигоҳ доштани дастрасии зуд тавассути индекс.
Маслиҳати соддакардашуда:
class SimpleArrayList<E> {
private Object[] data;
private int size = 0;
public SimpleArrayList() {
data = new Object[10];
}
public void add(E element) {
if (size == data.length) {
Object[] newData = new Object[data.length * 2];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
data[size++] = element;
}
public E get(int index) {
if (index >= size || index < 0) throw new IndexOutOfBoundsException();
return (E) data[index];
}
}