Junior — Middle
Come viene determinata la complessità temporale nell'aggiunta di un elemento a ArrayList?
sobes.tech AI
Risposta dell'AI
La complessità temporale di aggiunta di un elemento a ArrayList è generalmente ammortizzata a O(1). Ciò è dovuto al fatto che:
- Se l'array interno di
ArrayListha spazio libero, il nuovo elemento viene semplicemente scritto nella posizione successiva — l'operazione richiede un tempo costante O(1). - Se l'array interno è pieno, viene effettuata un'espansione: viene creato un nuovo array di dimensione maggiore e tutti gli elementi vengono copiati lì. Questa operazione richiede O(n), dove n è la dimensione attuale della lista.
Tuttavia, l'espansione non avviene ad ogni aggiunta, ma periodicamente, quindi la complessità media (ammortizzata) dell'aggiunta rimane O(1).
Esempio:
ArrayList<Integer> list = new ArrayList<>();
list.add(10); // Ammortizzato O(1)