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);
}