Διαφορά μεταξύ λίστας και ArrayList στην Java

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 2 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 15 Ενδέχεται 2024
Anonim
Διαφορά μεταξύ λίστας και ArrayList στην Java - Τεχνολογία
Διαφορά μεταξύ λίστας και ArrayList στην Java - Τεχνολογία

Περιεχόμενο


Λίστα και ArrayList είναι τα μέλη του πλαισίου συλλογής. Η λίστα είναι μια συλλογή στοιχείων σε μια ακολουθία όπου κάθε στοιχείο είναι ένα αντικείμενο και τα στοιχεία έχουν πρόσβαση από εκεί τη θέση (ευρετήριο). Το ArrayList δημιουργεί μια δυναμική σειρά αντικειμένων που αυξάνουν ή μειώνουν το μέγεθος όποτε είναι απαραίτητο. Η κύρια διαφορά μεταξύ της λίστας και του αρχείου ArrayList είναι αυτή Λίστα είναι μια διεπαφή και ArrayList είναι μια τάξη. Ας μελετήσουμε τη διαφορά μεταξύ του List και του ArrayList με τη βοήθεια του πίνακα σύγκρισης που φαίνεται παρακάτω.

  1. Συγκριτικό διάγραμμα
  2. Ορισμός
  3. Βασικές διαφορές
  4. συμπέρασμα

Συγκριτικό διάγραμμα

Βάση σύγκρισηςΛίσταArrayList
ΒασικόςΗ λίστα είναι μια διεπαφήΤο ArrayList είναι μια τυπική κλάση συλλογής.
Σύνταξηλίστα διεπαφώνclass ArrayList
Επέκταση / ΕφαρμογήΗ διεπαφή καταλόγου επεκτείνει το πλαίσιο συλλογής.Το ArrayList επεκτείνει το AbstractList και υλοποιεί τη διεπαφή λίστας.
Ο χώρος ονομάτωνSystem.Collections.Generic.System.Collections.
ΕργασίαΧρησιμοποιείται για τη δημιουργία μιας λίστας στοιχείων (αντικειμένων) που σχετίζονται με τους αριθμούς ευρετηρίων τους.Το ArrayList χρησιμοποιείται για τη δημιουργία ενός δυναμικού πίνακα που περιέχει αντικείμενα.


Ορισμός της λίστας

Η λίστα είναι μια διεπαφή που επεκτείνει το Συλλογή δομή. Η διεπαφή λίστας περιγράφει τη συλλογή στοιχείων που είναι διατεταγμένα διαδοχικά. Η διεπαφή λίστας υλοποιείται από τις ακόλουθες τυπικές κατηγορίες συλλογής όπως ArrayList, LinkedList, CopyOnWriteArrayList, Vector, στοίβα. Η διεπαφή λίστας περιέχει στοιχεία που σχετίζονται με τους αριθμούς ευρετηρίων τους. Μπορείτε να έχετε πρόσβαση σε ένα στοιχείο στη λίστα με τη θέση του (ευρετήριο) στη λίστα. Μια λίστα που δημιουργείται χρησιμοποιώντας τη διεπαφή λίστας ξεκινά με μηδενικό δείκτη.

Εκτός από τις μεθόδους που κληρονομούνται από το πλαίσιο συλλογής, η διεπαφή κατάλογος ορίζει επίσης κάποια δική της μέθοδο. Οι μέθοδοι που προστέθηκαν από τη διεπαφή λίστας είναι, προσθήκη (int, E) και addAll (int, Συλλογή). Αυτές οι μέθοδοι προσθέτουν ένα στοιχείο στη λίστα με το δείκτη τους. Μέθοδοι μέσα στη λίστα ενδέχεται να κάνουν εξαίρεση όπως UnsupportedOperationException αν η μέθοδος δεν είναι σε θέση να τροποποιήσει τη λίστα. Όταν ένα αντικείμενο σε μια λίστα δεν είναι συμβατό με άλλο αντικείμενο της λίστας, τότε ClassCastException .Null στοιχεία δεν επιτρέπονται στη λίστα, αν προσπαθήσετε να εισαγάγετε ένα μηδενικό αντικείμενο στη λίστα, NullPointerException ρίχνονται.


Μπορείτε να αποκτήσετε ένα στοιχείο από τη λίστα χρησιμοποιώντας παίρνω() μέθοδος. Μπορείτε να ορίσετε την τιμή ενός στοιχείου στη λίστα χρησιμοποιώντας σειρά() μέθοδος. Μπορείτε επίσης να πάρετε την υπο-λίστα από τη λίστα χρησιμοποιώντας μια μέθοδο sublist (). Γίνεται βολικό να λειτουργείτε στην υπο-λίστα αντί για μια λίστα.

Ορισμός του ArrayList

Μία από τις τυπικές κατηγορίες συλλογής είναι το ArrayList που επεκτείνεται AbstractList class και επίσης υλοποιεί το Λίστα διεπαφή. Η κλάση ArrayList χρησιμοποιείται για τη δημιουργία δυναμικών συστοιχιών που αναπτύσσονται και συρρικνώνονται όποτε απαιτείται. Η λίστα που δημιουργήθηκε χρησιμοποιώντας την κλάση ArrayList δεν είναι παρά η συστοιχία αντικειμένων. Στην Java, ο τυποποιημένος πίνακας έχει το σταθερό μήκος, οπότε πρέπει να γνωρίζετε εκ των προτέρων το μέγεθος του πίνακα. Αλλά, ίσως είναι πιθανόν να μην γνωρίζετε το μήκος του πίνακα που χρειάζεστε μέχρι την ώρα εκτέλεσης. Ως εκ τούτου, το πλαίσιο Collection εισήγαγε την κλάση ArrayList για να ξεπεράσει αυτό το ζήτημα.

Το ArrayList έχει κατασκευαστές που δημιουργούν τον πίνακα με την αρχική του χωρητικότητα. Αν και η χωρητικότητα του αντικειμένου του class ArrayList αυξάνεται αυτόματα όταν προστίθενται στοιχεία στον πίνακα, μπορείτε ακόμα να αυξήσετε χειροκίνητα την χωρητικότητα του αντικειμένου του ArrayList χρησιμοποιώντας τη μέθοδο ensureCapacity (). Είναι καλύτερο να αυξήσετε αρχικά την χωρητικότητα της συστοιχίας αντί να ανακατανείμετε αργότερα τη μνήμη. Επειδή η ανακατανομή είναι δαπανηρότερη από την κατανομή της μνήμης ταυτόχρονα.

  1. Μία από τις πιο σημαντικές διαφορές μεταξύ του List και του ArrayList είναι ότι η λίστα είναι μια διεπαφή και το ArrayList είναι μια τυπική Συλλογή τάξη.
  2. Η διεπαφή λίστας επεκτείνει το Συλλογή ενώ το ArrayList επεκτείνεται AbstractList Class και υλοποιεί Λίστα διεπαφές.
  3. Ο χώρος ονομάτων για τη διεπαφή λίστας είναι System.Collection.Generic ενώ ο χώρος ονομάτων για το ArrayList είναι System.Collection.
  4. Η διεπαφή λίστας δημιουργεί μια συλλογή στοιχείων που αποθηκεύονται σε μια ακολουθία και αναγνωρίζονται ή προσπελάζονται από τον αριθμό του δείκτη τους. Από την άλλη πλευρά, το ArrayList δημιουργεί μια σειρά αντικειμένων όπου ο πίνακας μπορεί να αναπτυχθεί δυναμικά όταν απαιτείται.

Συμπέρασμα:

Το ArrayList ξεπερνά το ζήτημα ενός στατικού πίνακα σε τυπική Java, δηλαδή ο πίνακας δεν μπορεί να αναπτυχθεί σε μέγεθος μόλις δημιουργηθεί. Όταν ένας πίνακας δημιουργείται χρησιμοποιώντας το ArrayList, δημιουργείται ένας δυναμικός πίνακας ο οποίος μπορεί να αναπτυχθεί και να συρρικνωθεί σε μέγεθος όταν χρειάζεται. Η τυπική κλάση συλλογής ArrayList επεκτείνει τη διεπαφή λίστας.