Junior
Ποιες συλλογές υπάρχουν στη Java;
sobes.tech AI
Απάντηση από AI
Το πλαίσιο συλλογών της Java παρέχει πολλές συλλογές για την αποθήκευση και διαχείριση δεδομένων. Οι κύριες διεπαφές και οι υλοποιήσεις τους:
Collection: βασική διεπαφή.List: διατεταγμένη συλλογή που επιτρέπει διπλότυπα.ArrayList: βασίζεται σε πίνακα, γρήγορη πρόσβαση μέσω δείκτη, αργή εισαγωγή/διαγραφή στη μέση.LinkedList: βασίζεται σε διπλά συνδεδεμένη λίστα, γρήγορη εισαγωγή/διαγραφή, αργή πρόσβαση μέσω δείκτη.Vector: thread-safe έκδοση τουArrayList, παρωχημένο.Stack: βασίζεται σεVector, αρχή LIFO.
Set: συλλογή μοναδικών στοιχείων, χωρίς συγκεκριμένη σειρά (εκτός από τοSortedSet).HashSet: βασίζεται σε πίνακα κατακερματισμού, γρήγορη πρόσβαση και εισαγωγή/διαγραφή.LinkedHashSet: διατηρεί τη σειρά εισαγωγής.TreeSet: αποθηκεύει στοιχεία σε ταξινομημένη σειρά.
Queue: συλλογή στοιχείων, συχνά χρησιμοποιείται για την αποθήκευση πριν από την επεξεργασία σε FIFO σειρά.PriorityQueue: στοιχεία εξάγονται με βάση την προτεραιότητά τους.ArrayDeque: διπλή ουρά.
Deque: διπλή ουρά, μπορεί να προσθέτει και να αφαιρεί στοιχεία και από τις δύο άκρες.
Map: αποθηκεύει ζεύγη κλειδιού-τιμής, τα κλειδιά είναι μοναδικά.HashMap: βασίζεται σε πίνακα κατακερματισμού, γρήγορη πρόσβαση μέσω κλειδιού.LinkedHashMap: διατηρεί τη σειρά εισαγωγής ή πρόσβασης.TreeMap: αποθηκεύει ζεύγη σε ταξινομημένη σειρά με βάση τα κλειδιά.Hashtable: thread-safe έκδοση τουHashMap, παρωχημένο.
Συλλογές ασφαλείς για νήματα:
Collections.synchronized*: περιτυλίγματα πάνω από υπάρχουσες συλλογές.Concurrent*: πακέτοjava.util.concurrent, συλλογές με βελτιωμένη απόδοση σε ανταγωνιστικά περιβάλλοντα.ConcurrentHashMapCopyOnWriteArrayListConcurrentLinkedQueue
Και άλλες λιγότερο συνηθισμένες συλλογές.