Junior — Middle
Kādi soļi tiek veikti, lai pievienotu jaunu elementu ArrayList struktūrai?
sobes.tech AI
Atbilde no AI
Kad pievienotu jaunu elementu ArrayList, tiek izpildīti šādi soļi:
- Pārbauda, vai pašreizējais iekšējais masīvs (parasti Object[]) ir pietiekami liels, lai saglabātu jauno elementu.
- Ja vietas nepietiek, tiek izveidots jauns masīvs ar palielinātu izmēru (parasti par 50% vai 1,5 reizes lielāks), un visi elementi tiek kopēti tajā.
- Jaunais elements tiek novietots pirmajā brīvajā pozīcijā iekšējā masīvā.
- Palielinās saraksta izmēra skaitītājs (size).
Parasti elementa pievienošana notiek šādi:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // pārbaude un masīva paplašināšana
elementData[size++] = e; // elementa pievienošana un izmēra palielināšana
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% palielinājums
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}