Μπορείτε να ορίσετε το αρχικό μέγεθος για μια ArrayList κάνοντας
ArrayList<Integer> arr=new ArrayList<Integer>(10);
Ωστόσο, δεν μπορείτε να κάνετε
arr.add(5, 10);
επειδή προκαλεί μια εξαίρεση εκτός ορίων.
Ποια είναι η χρησιμότητα του ορισμού ενός αρχικού μεγέθους αν δεν μπορείτε να έχετε πρόσβαση στο χώρο που έχετε διαθέσει;
Η συνάρτηση add ορίζεται ως add(int index, Object element)
οπότε δεν προσθέτω στον δείκτη 10.
Μπερδεύετε το μέγεθος της λίστας συστοιχιών με τη χωρητικότητά της:
Όταν καλείτε new ArrayList<Integer>(10)
, ορίζετε την αρχική χωρητικότητα της λίστας, όχι το μέγεθός της. Με άλλα λόγια, όταν κατασκευάζεται με αυτόν τον τρόπο, η λίστα συστοιχιών ξεκινάει τη ζωή της άδεια.
Ένας τρόπος για να προσθέσετε δέκα στοιχεία στη λίστα του πίνακα είναι με τη χρήση ενός βρόχου:
for (int i = 0; i < 10; i++) {
arr.add(0);
}
Έχοντας κάνει αυτό, μπορείτε τώρα να τροποποιήσετε τα στοιχεία στους δείκτες 0..9.
Το 10 είναι η αρχική χωρητικότητα της ΑΛ, όχι το μέγεθος (το οποίο είναι 0). Θα πρέπει να αναφέρετε την αρχική χωρητικότητα σε κάποια υψηλή τιμή όταν πρόκειται να έχετε πολλά στοιχεία, επειδή έτσι αποφεύγεται η επιβάρυνση της επέκτασης της χωρητικότητας καθώς προσθέτετε συνεχώς στοιχεία.
Αυτή τη στιγμή δεν υπάρχουν στοιχεία στη λίστα σας, οπότε δεν μπορείτε να προσθέσετε στον δείκτη 5 της λίστας όταν δεν υπάρχει. Μπερδεύετε τη χωρητικότητα της λίστας με το τρέχον μέγεθός της.
Απλά καλέστε:
arr.add(10)
για να προσθέσετε τον ακέραιο αριθμό στην ArrayList σας