Sobes.tech
Junior — Middle

Πώς αλλάζει το μέγεθος του ArrayList κατά την διαδοχική προσθήκη στοιχείων μέχρι να επιτευχθεί ένας ορισμένος αριθμός

sobes.tech AI

Απάντηση από AI

Στη Java, η κλάση ArrayList υλοποιεί μια δυναμική λίστα που αυξάνει αυτόματα το μέγεθός της όταν προστίθενται νέα στοιχεία, εάν η τρέχουσα χωρητικότητα είναι γεμάτη.

Αρχικά, το ArrayList δημιουργείται με μια ορισμένη χωρητικότητα (προεπιλογή 10). Όταν ο αριθμός των στοιχείων φτάσει αυτήν τη χωρητικότητα, το μέγεθος του εσωτερικού πίνακα αυξάνεται. Στην τυπική υλοποίηση, το μέγεθος αυξάνεται περίπου κατά 50% της τρέχουσας (δηλαδή, νέα χωρητικότητα = παλιά χωρητικότητα + παλιά χωρητικότητα / 2).

Αυτό επιτρέπει την ισορροπία μεταξύ του κόστους αντιγραφής δεδομένων και της χρήσης μνήμης.

Παράδειγμα:

ArrayList<Integer> list = new ArrayList<>();
// Προσθέτουμε στοιχεία, όταν το μέγεθος φτάσει το 10, η χωρητικότητα θα αυξηθεί περίπου σε 15
for (int i = 0; i < 20; i++) {
    list.add(i);
}