Διαφορά μεταξύ ArrayList και LinkedList

Πίνακας περιεχομένων:

Διαφορά μεταξύ ArrayList και LinkedList
Διαφορά μεταξύ ArrayList και LinkedList

Βίντεο: Διαφορά μεταξύ ArrayList και LinkedList

Βίντεο: Διαφορά μεταξύ ArrayList και LinkedList
Βίντεο: Больше, чем кофе: внутренняя работа интервью 2024, Ιούλιος
Anonim

Βασική διαφορά – ArrayList vs LinkedList

Οι συλλογές είναι χρήσιμες για την αποθήκευση δεδομένων. Σε έναν κανονικό πίνακα, το μέγεθος του πίνακα είναι σταθερό. Μερικές φορές απαιτείται η δημιουργία συστοιχιών που μπορούν να αναπτυχθούν ανάλογα με τις ανάγκες. Οι γλώσσες προγραμματισμού όπως η Java έχουν συλλογές. Είναι ένα πλαίσιο με ένα σύνολο κλάσεων και διεπαφών. Χρησιμεύει ως δοχείο για μια ομάδα στοιχείων. Οι συλλογές επιτρέπουν την αποθήκευση, ενημέρωση, ανάκτηση συνόλου στοιχείων. Βοηθά στην εργασία με δομές δεδομένων όπως λίστες, σύνολα, δέντρα και χάρτες. Η λίστα είναι μια διεπαφή του πλαισίου συλλογής. Το ArrayList και το LinkedList είναι δύο κλάσεις στο πλαίσιο συλλογών. Υλοποιούν τη διεπαφή συλλογής και τη διεπαφή λίστας. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ ArrayList και LinkedList. Το ArrayList είναι μια κλάση που επεκτείνει τη AbstractList και υλοποιεί τη διεπαφή λίστας, η οποία χρησιμοποιεί εσωτερικά έναν δυναμικό πίνακα για την αποθήκευση στοιχείων δεδομένων. Το LinkedList είναι μια κλάση που επεκτείνει την AbstractSequentialList και υλοποιεί τις διεπαφές List, Deque και Queue, οι οποίες εσωτερικά χρησιμοποιούν μια λίστα διπλά συνδεδεμένη για την αποθήκευση στοιχείων δεδομένων. Αυτή είναι η βασική διαφορά μεταξύ ArrayList και LinkedList.

Τι είναι το ArrayList;

Η κλάση ArrayList χρησιμοποιείται για τη δημιουργία δυναμικών πινάκων. Σε αντίθεση με έναν κανονικό πίνακα, το μέγεθος ενός δυναμικού πίνακα δεν είναι σταθερό. Ένα αντικείμενο που δημιουργείται χρησιμοποιώντας την κλάση ArrayList επιτρέπεται να αποθηκεύει ένα σύνολο στοιχείων στη λίστα. Η χωρητικότητα αυξάνεται αυτόματα, οπότε ο προγραμματιστής μπορεί να προσθέσει στοιχεία στη λίστα. Η κλάση ArrayList επεκτείνει την κλάση AbstractList που υλοποιεί τη διεπαφή List. Επομένως, οι μέθοδοι της διεπαφής List μπορούν να χρησιμοποιηθούν από το ArrayList. Για την πρόσβαση σε στοιχεία, χρησιμοποιείται η μέθοδος get(). Η μέθοδος add() μπορεί να χρησιμοποιηθεί για την προσθήκη στοιχείων στη λίστα. Η μέθοδος remove() χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Ανατρέξτε στο παρακάτω πρόγραμμα.

Διαφορά μεταξύ ArrayList και LinkedList
Διαφορά μεταξύ ArrayList και LinkedList
Διαφορά μεταξύ ArrayList και LinkedList
Διαφορά μεταξύ ArrayList και LinkedList

Εικόνα 01: Παράδειγμα ArrayList

Σύμφωνα με το παραπάνω πρόγραμμα, δημιουργείται ένα αντικείμενο του ArrayList. Χρησιμοποιώντας τη μέθοδο προσθήκης, τα στοιχεία μπορούν να προστεθούν δυναμικά. Τα στοιχεία "A", "B", "C", "D" και "E" προστίθενται χρησιμοποιώντας τη μέθοδο προσθήκης. Η μέθοδος αφαίρεσης χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Όταν περνάτε το 4 στη μέθοδο αφαίρεσης, το γράμμα στο 4ο ευρετήριο που είναι "E" αφαιρείται από τη λίστα. Κατά την επανάληψη στη λίστα χρησιμοποιώντας τον βρόχο for, θα εκτυπωθούν τα γράμματα A, B, C και D.

Τι είναι το LinkedList;

Παρόμοια με το ArrayList, το LinkedList χρησιμοποιείται για την δυναμική αποθήκευση στοιχείων δεδομένων. Ένα αντικείμενο που δημιουργείται χρησιμοποιώντας την κλάση LinkedList επιτρέπεται να αποθηκεύει ένα σύνολο στοιχείων στη λίστα. Η χωρητικότητα αυξάνεται αυτόματα, οπότε ο προγραμματιστής μπορεί να προσθέσει στοιχεία στη λίστα. Χρησιμοποιεί εσωτερικά διπλά συνδεδεμένη λίστα για την αποθήκευση δεδομένων. Σε μια διπλά συνδεδεμένη λίστα, τα δεδομένα αποθηκεύονται ως κόμβοι. Κάθε κόμβος περιέχει δύο συνδέσμους. Ο πρώτος σύνδεσμος οδηγεί στον προηγούμενο κόμβο. Ο επόμενος σύνδεσμος οδηγεί στον επόμενο κόμβο της ακολουθίας.

Η κλάση LinkedList επεκτείνει την κλάση AbstractSequentialList και υλοποιεί τη διεπαφή List. Επομένως, οι μέθοδοι της διεπαφής λίστας μπορούν να χρησιμοποιηθούν από το LinkedList. Η μέθοδος get() μπορεί να χρησιμοποιηθεί για πρόσβαση σε στοιχεία της λίστας. Η μέθοδος add() μπορεί να χρησιμοποιηθεί για την προσθήκη στοιχείων στη λίστα. Η μέθοδος remove() χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Ανατρέξτε στο παρακάτω πρόγραμμα.

Βασική διαφορά μεταξύ ArrayList και LinkedList
Βασική διαφορά μεταξύ ArrayList και LinkedList
Βασική διαφορά μεταξύ ArrayList και LinkedList
Βασική διαφορά μεταξύ ArrayList και LinkedList

Εικόνα 02: Παράδειγμα με LinkedList

Σύμφωνα με το παραπάνω πρόγραμμα δημιουργείται ένα αντικείμενο του LinkedList. Χρησιμοποιώντας τη μέθοδο προσθήκης, τα στοιχεία μπορούν να προστεθούν δυναμικά. Τα στοιχεία "A", "B", "C", "D" και "E" προστίθενται χρησιμοποιώντας τη μέθοδο προσθήκης. Η μέθοδος αφαίρεσης χρησιμοποιείται για την αφαίρεση ενός στοιχείου από τη λίστα. Όταν περνάτε το 4 στη μέθοδο αφαίρεσης, το γράμμα στο 4ο ευρετήριο που είναι "E" αφαιρείται από τη λίστα. Κατά την επανάληψη χρησιμοποιώντας τον βρόχο for, θα εκτυπωθούν τα γράμματα A, B, C και D.

Ποιες είναι οι ομοιότητες μεταξύ ArrayList και LinkedList;

  • Τόσο το ArrayList όσο και το LinkedList υλοποιούν τη διεπαφή λίστας.
  • Τόσο το ArrayList όσο και το LinkedList μπορούν να περιέχουν διπλότυπα στοιχεία.
  • Τόσο το ArrayList όσο και το LinkedList διατηρούν τη σειρά εισαγωγής.

Ποια είναι η διαφορά μεταξύ ArrayList και LinkedList;

ArrayList vs LinkedList

Το ArrayList είναι μια κλάση που επεκτείνει τη AbstractList και υλοποιεί τη διεπαφή λίστας η οποία χρησιμοποιεί εσωτερικά έναν δυναμικό πίνακα για την αποθήκευση στοιχείων δεδομένων. Το LinkedList είναι μια κλάση που επεκτείνει την AbstractSequentialList και υλοποιεί τις διεπαφές List, Deque, Queue, οι οποίες εσωτερικά χρησιμοποιούν μια λίστα διπλά συνδεδεμένη για την αποθήκευση στοιχείων δεδομένων.
Πρόσβαση στα στοιχεία
Η πρόσβαση σε στοιχεία του ArrayList είναι ταχύτερη από ό,τι σε μια LinkedList. Η πρόσβαση σε στοιχεία της LinkedList είναι πιο αργή από αυτή μιας ArrayList.
Χειρισμός στοιχείων
Ο χειρισμός στοιχείων του ArrayList είναι πιο αργός από ό,τι ενός LinkedList. Ο χειρισμός στοιχείων του LinkedList είναι ταχύτερος από έναν ArrayList.
Συμπεριφορά
ArrayList λειτουργεί ως λίστα. LinkedList λειτουργεί ως λίστα και ουρά.

Σύνοψη – ArrayList vs LinkedList

Το πλαίσιο συλλογής επιτρέπει την εργασία με δομές δεδομένων όπως λίστες, δέντρα, χάρτες και σύνολα. Η λίστα είναι μια διεπαφή του πλαισίου συλλογής. Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ ArrayList και LinkedList. Το ArrayList είναι μια κλάση που επεκτείνει το AbstractList και υλοποιεί τη διεπαφή List που χρησιμοποιεί εσωτερικά έναν δυναμικό πίνακα για την αποθήκευση στοιχείων δεδομένων. Το LinkedList είναι μια κλάση που επεκτείνει την AbstractSequentialList και υλοποιεί τις διεπαφές List, Deque, Queue, οι οποίες εσωτερικά χρησιμοποιούν μια διπλά συνδεδεμένη λίστα για την αποθήκευση στοιχείων δεδομένων. Αυτή είναι η διαφορά μεταξύ ArrayList και LinkedList.

Συνιστάται: