Βίντεο: Ποια γλώσσα προγραμματισμού να μάθω; 2024
Οι πίνακες Java είναι ωραίοι, αλλά με ορισμένους σοβαρούς περιορισμούς. Φανταστείτε ότι αποθηκεύετε ονόματα πελατών με κάποια προκαθορισμένη σειρά. Ο κώδικας περιέχει έναν πίνακα και ο πίνακας έχει χώρο για 100 ονόματα.
Όνομα συμβολοσειράς [] = νέα σειρά [100]; για το (int i = 0; i <100; i ++) {name [i] = new String ();}
Όλα είναι καλά μέχρι να εμφανιστεί ένας αριθμός πελάτη 101. Καθώς το πρόγραμμά σας τρέχει, εισάγετε δεδομένα για τον πελάτη 101, ελπίζοντας απελπισμένα ότι ο πίνακας με 100 εξαρτήματα μπορεί να επεκταθεί για να ταιριάζει στις αυξανόμενες ανάγκες σας.
Δεν υπάρχει τέτοια τύχη. Οι συστοιχίες δεν επεκτείνονται. Το πρόγραμμα σας διακόπτεται με μια ArrayIndexOutOfBoundsException.
"Στην επόμενη ζωή μου, θα δημιουργήσω συστοιχίες μήκους 1, 000", λέτε στον εαυτό σας. Και όταν η επόμενη ζωή σας κυλά γύρω, κάνετε ακριβώς αυτό.
Όνομα συμβολοσειράς [] = νέα συμβολοσειρά [1000 ]; για το (int i = 0; i << 1000 ; i ++) {name [i] = νέο String ();} Αλλά κατά τη διάρκεια της επόμενης ζωής σας, εμφανίζεται μια οικονομική ύφεση. Αντί να έχετε 101 πελάτες, έχετε μόνο 3 πελάτες. Τώρα σπαταλάτε χώρο για 1, 000 ονόματα όταν το διάστημα για 3 ονόματα θα έκανε.
Μια μέρα, εμφανίζεται ένας ολοκαίνουργιος πελάτης. Επειδή οι πελάτες σας είναι αποθηκευμένοι κατά σειρά (αλφαβητικά κατά επώνυμο, αριθμητικά με τον αριθμό κοινωνικής ασφάλισης, οτιδήποτε), θέλετε να πιέσετε αυτόν τον πελάτη στο σωστό στοιχείο του πίνακα σας. Το πρόβλημα είναι ότι αυτός ο πελάτης ανήκει πολύ νωρίς στη συστοιχία, στο στοιχείο με το δείκτη 7. Τι συμβαίνει τότε;
Συνεχίζετε να το κάνετε μέχρι να μετακινήσετε το όνομα στο στοιχείο 7. Στη συνέχεια, βάλετε το όνομα του νέου πελάτη στο στοιχείο 7. Τι πόνο! Σίγουρα, ο υπολογιστής δεν παραπονιέται. Αλλά καθώς μετακινείτε όλα αυτά τα ονόματα, σπαταλάτε χρόνο επεξεργασίας, χάνετε την εξουσία και σπαταλάτε κάθε είδους πόρους.
"Στην επόμενη ζωή μου, θα αφήσω τρία κενά συστατικά μεταξύ των δύο ονομάτων. "Και φυσικά, η επιχείρησή σας επεκτείνεται. Έως ότου τελικά διαπιστώσετε ότι τα τρία δεν αρκούν.