Πάντα ήμουν ένας απλός χρήστης:
List<String> names = new ArrayList<>();
Χρησιμοποιώ τη διασύνδεση ως όνομα τύπου για portability, έτσι ώστε όταν κάνω ερωτήσεις όπως αυτές να μπορώ να ξαναδουλέψω τον κώδικά μου.
Πότε θα πρέπει να χρησιμοποιείται η LinkedList
έναντι της ArrayList
και αντίστροφα;
Είναι ένα ερώτημα αποτελεσματικότητας. Η LinkedList
είναι γρήγορη για την προσθήκη και τη διαγραφή στοιχείων, αλλά αργή για την πρόσβαση σε ένα συγκεκριμένο στοιχείο. Η ArrayList
είναι γρήγορη για την πρόσβαση σε ένα συγκεκριμένο στοιχείο, αλλά μπορεί να είναι αργή για την προσθήκη σε οποιοδήποτε άκρο, και ιδιαίτερα αργή για τη διαγραφή στη μέση.
Το Array vs ArrayList vs LinkedList vs Vector αναλύεται σε βάθος, όπως και το Array vs ArrayList vs LinkedList vs Vector. Linked List.
Η ArrayList
είναι τυχαία προσβάσιμη, ενώ η LinkedList
είναι πραγματικά φθηνή για να επεκτείνετε και να αφαιρείτε στοιχεία από αυτήν. Για τις περισσότερες περιπτώσεις, η ArrayList
είναι μια χαρά.
Αν δεν έχετε δημιουργήσει μεγάλες λίστες και δεν έχετε μετρήσει μια δυσχέρεια, μάλλον δεν θα χρειαστεί ποτέ να ανησυχήσετε για τη διαφορά.
Εξαρτάται από τις εργασίες που θα κάνετε περισσότερο στη Λίστα.
Η ArrayList
είναι ταχύτερη για πρόσβαση σε μια τιμή με δείκτη. Είναι πολύ χειρότερη όταν εισάγετε ή διαγράφετε αντικείμενα.
Για να μάθετε περισσότερα, διαβάστε οποιοδήποτε άρθρο που αναφέρεται στη διαφορά μεταξύ πινάκων και συνδεδεμένων λιστών.