Βίντεο: Latex: Απλό παράδειγμα με μαθηματικές εκφράσεις και τύπους 2024
Η κλάση ArrayList που χρησιμοποιείται σε πολλά προγράμματα εφαρμογών Android είναι μόνο η κορυφή του παγόβουνου συλλογών Java. Η βιβλιοθήκη Java περιέχει πολλές κατηγορίες συλλογών, καθεμία με τα δικά της πλεονεκτήματα. Ο πίνακας περιέχει μια συντομευμένη λίστα.
Όνομα κλάσης | Χαρακτηριστικό |
---|---|
ArrayList | Ένας πίνακας με δυνατότητα αλλαγής μεγέθους. |
LinkedList | Μια λίστα τιμών, καθένα από τα οποία έχει ένα πεδίο που δείχνει το επόμενο
ένα στη λίστα. |
Στοίβα | Μια δομή (η οποία αναπτύσσεται από κάτω προς τα πάνω) που έχει βελτιστοποιηθεί
για πρόσβαση στην υψηλότερη τιμή. Μπορείτε εύκολα να προσθέσετε μια τιμή στην κορυφή ή να την αφαιρέσετε από την κορυφή. |
Queue | Μια δομή (που αναπτύσσεται στο ένα άκρο) που έχει βελτιστοποιηθεί για
προσθέτοντας τιμές στο ένα άκρο (πίσω) και απομάκρυνση τιμών από το άλλο άκρο . |
PriorityQueue | Μια δομή, όπως μια ουρά, που επιτρέπει σε ορισμένες τιμές (υψηλότερης προτεραιότητας)
να κινούνται προς τα εμπρός. |
HashSet | Μια συλλογή που δεν περιέχει διπλές τιμές. |
HashMap | Μια συλλογή ζευγών κλειδιών / τιμών. |
Κάθε κλάση συλλογής έχει το δικό της σύνολο μεθόδων (εκτός από τις μεθόδους που κληρονομεί από την AbstractCollection, τον πρόγονο όλων των κατηγοριών συλλογής).
Ο πίνακας είναι ένα συγκεκριμένο είδος συλλογής που βελτιστοποιείται για την ευρετηρίαση. Δηλαδή, μπορείτε να βρείτε εύκολα και αποτελεσματικά την 100η τιμή που είναι αποθηκευμένη σε μια συστοιχία, την τιμή 1.000.000 που είναι αποθηκευμένη σε μια συστοιχία ή την τιμή 1.000.000.000 που είναι αποθηκευμένη σε έναν πίνακα.
Ο πίνακας είναι ένα σεβαστό, δοκιμασμένο και αληθές χαρακτηριστικό πολλών γλωσσών προγραμματισμού, συμπεριλαμβανομένων νεότερων γλωσσών όπως η Java και παλιότερες γλώσσες όπως το FORTRAN. Στην πραγματικότητα, η ιστορία της συστοιχίας πηγαίνει μέχρι τώρα, ώστε οι περισσότερες γλώσσες (συμπεριλαμβανομένης της Java) έχουν ειδική μαρτυρία για την αντιμετώπιση συστοιχιών. Η λίστα παρουσιάζει τη σημείωση των συστοιχιών σε ένα απλό πρόγραμμα Java.
πακέτο com. allmycode. συλλογές · δημόσια τάξη SimpleCollectionsDemo {δημόσιο static κενό main (String [] args) { String [] myArray = νέα συμβολοσειρά [4]; myArray [0] = "Γεια σας"; myArray [1] = ","; myArray [2] = "αναγνώστες"; myArray [3] = "!"; για το (int i = 0; i <4; i ++) { Σύστημα. έξω. εκτύπωση (myArray [i]); } Σύστημα. έξω. println (); για (Σειριακή συμβολοσειρά: myArray) {System. έξω. print (string),}}}
Το σχήμα δείχνει την έξοδο μιας διαδρομής του κώδικα στην καταχώριση. Τόσο ο συνηθισμένος βρόχος όσο και ο ενισχυμένος βρόχος εμφανίζουν την ίδια έξοδο.
Στην καταχώριση, ο συνηθισμένος βρόχος χρησιμοποιεί ευρετήρια, με κάθε δείκτη να σημειώνεται με αγκύλες.Όπως συμβαίνει με όλες τις συλλογές Java, ο δείκτης της αρχικής τιμής είναι 0, όχι 1. Σημειώστε επίσης τον αριθμό 4 στη δήλωση του πίνακα - υποδεικνύει ότι "μπορείτε να αποθηκεύσετε 4 τιμές στον πίνακα. "
Ο αριθμός 4 δεν υποδεικνύει ότι" μπορείτε να αντιστοιχίσετε μια τιμή στο myArray [4]. "Στην πραγματικότητα, αν προσθέσετε μια δήλωση όπως myArray [4] =" Ωχ! "Στον κώδικα της λίστας, θα έχετε ένα δυσάρεστο μήνυμα λάθους (ArrayIndexOutOfBoundsException) όταν εκτελείτε το πρόγραμμα.
Η εντολή String [] myArray = new String [4] δημιουργεί έναν κενό πίνακα και μετατρέπει τη μεταβλητή myArray σε αυτόν τον κενό πίνακα. Ο πίνακας μπορεί ενδεχομένως να αποθηκεύσει έως και τέσσερις τιμές. Αλλά, αρχικά, αυτή η μεταβλητή αναφέρεται σε μια διάταξη που δεν περιέχει τιμές. Μόλις εκτελέσει η Java την πρώτη εντολή εκχώρησης (myArray [0] = "Hello"), ο πίνακας περιέχει οποιεσδήποτε τιμές.
Μπορείτε να βρείτε εύκολα και αποτελεσματικά την 100η τιμή που είναι αποθηκευμένη σε μια συστοιχία ή την τιμή 1.000.000.000 που είναι αποθηκευμένη σε έναν πίνακα. Δεν είναι κακό για την εργασία μιας ημέρας. Λοιπόν, ποιο είναι το μειονέκτημα της χρήσης ενός πίνακα; Το μεγαλύτερο μειονέκτημα μιας συστοιχίας είναι ότι κάθε διάταξη έχει ένα σταθερό όριο στον αριθμό των τιμών που μπορεί να κρατήσει. Όταν δημιουργείτε τον πίνακα στη λίστα, η Java διατηρεί χώρο για έως και τέσσερις τιμές String.
Εάν, αργότερα στο πρόγραμμα, αποφασίσετε ότι θέλετε να αποθηκεύσετε ένα πέμπτο στοιχείο στη συστοιχία, χρειάζεστε κάποιο αδέξια, αναποτελεσματικό κώδικα για να κάνετε τον εαυτό σας έναν μεγαλύτερο πίνακα. Μπορείτε επίσης να υπερεκτιμήσετε το μέγεθος που χρειάζεστε για έναν πίνακα, όπως φαίνεται σε αυτό το παράδειγμα:
String [] myArray = new String [20000000];
Όταν υπερεκτιμάτε, πιθανότατα σπαταλάτε πολύ χώρο στη μνήμη.
Ένα άλλο δυσάρεστο χαρακτηριστικό ενός πίνακα είναι η δυσκολία που μπορεί να έχεις στην εισαγωγή νέων αξιών. Φανταστείτε να έχετε ένα ξύλινο κιβώτιο για κάθε έτος στη συλλογή σας Αυτοκράτορας Κωνσταντίνος Κόμικς . Η σειρά χρονολογείται από το έτος 307 Α. Δ., Όταν ο Κωνσταντίνος έγινε επικεφαλής της Ρωμαϊκής Αυτοκρατορίας.
Έχετε μόνο 1, 700 κιβώτια επειδή λείπετε περίπου έξι χρόνια (κυρίως από τα έτη 1150 έως 1155). Τα κουτιά δεν είναι αριθμημένα, αλλά στοιβάζονται το ένα δίπλα στο άλλο σε μια γραμμή μήκους 200 μέτρων. (Η γραμμή είναι όσο ο 55ος όροφος ενός ουρανοξύστη είναι ψηλός.)
Σε μια πώληση γκαράζ στην Κωνσταντινούπολη, από το Μάρτιο του 1152 βρίσκετε μια σπάνια έκδοση του Αυτοκράτορος Κωνσταντίνος Κόμικς . το πρώτο κωμικό από το έτος 1152, συνειδητοποιείτε ότι πρέπει να εισαγάγετε ένα νέο κουτί στο σωρό μεταξύ των ετών 1151 και 1153, το οποίο περιλαμβάνει τη μετακίνηση του κουτιού του έτους 2013 περίπου δέκα εκατοστά προς τα αριστερά και μετά τη μετακίνηση του κουτιού 2012 στη θέση το πλαίσιο 2013 και, στη συνέχεια, μετακινώντας το κουτί του 2011 στη θέση του κουτιού του 2012. Και ούτω καθεξής.
Η ζωή για τον άπληστο Αυτοκράτορα Κωνσταντίνος Comics συλλέκτης πρόκειται να γίνει κουραστικό! Η εισαγωγή μιας τιμής στη μέση ενός μεγάλου πίνακα είναι εξίσου ενοχλητική.