Junior
Ποιες συλλογές υπάρχουν στη Java;
sobes.tech AI
Απάντηση από AI
Στη Java, υπάρχουν τα ακόλουθα βασικά interfaces συλλογών που ανήκουν στο Java Collections Framework:
-
Collection: Βασικό interface που ορίζει κοινές λειτουργίες για ομάδες αντικειμένων. Κληρονομείται από τα υπο-interfaces:List: Ταξινομημένη συλλογή (ακολουθία). Τα στοιχεία μπορούν να επαναληφθούν. Υποστηρίζει πρόσβαση με δείκτη.ArrayList: Ευέλικτος πίνακας. Καλός για γρήγορη πρόσβαση με δείκτη και προσθήκη στο τέλος. Αργός για εισαγωγή/διαγραφή στη μέση.LinkedList: Διπλά συνδεδεμένη λίστα. Καλό για εισαγωγή/διαγραφή στην αρχή ή το τέλος. Αργό για πρόσβαση με δείκτη.Vector: Συγχρονισμένη έκδοση τουArrayList. Θεωρείται παρωχημένο.Stack: Κληρονομεί από τοVector, υλοποιεί συμπεριφορά στοίβας (LIFO).
Set: Συλλογή που περιέχει μόνο μοναδικά στοιχεία. Δεν εγγυάται σειρά.HashSet: Υλοποιείται με πίνακα κατακερματισμού. Το πιο γρήγορο για προσθήκη, διαγραφή και έλεγχο ύπαρξης. Δεν εγγυάται σειρά.LinkedHashSet: Υλοποιείται ως πίνακας κατακερματισμού + συνδεδεμένη λίστα. Εγγυάται τη σειρά εισαγωγής.TreeSet: Υλοποιείται με κόκκινο-μαύρο δέντρο. Αποθηκεύει στοιχεία σε ταξινομημένη σειρά. Αργότερο από τοHashSet, αλλά ταχύτερο από τοLinkedHashSetγια εύρεση εύρους.
Queue: Συλλογή σχεδιασμένη για αποθήκευση στοιχείων πριν από την επεξεργασία (FIFO - First-In, First-Out).PriorityQueue: Τα στοιχεία αποθηκεύονται σύμφωνα με την φυσική τους σειρά ή έναν συγκριτή. Αφαιρεί το στοιχείο με την υψηλότερη προτεραιότητα.Deque: (Double Ended Queue) Υποστηρίζει εισαγωγή και διαγραφή και από τις δύο άκρες.ArrayDeque: Υλοποίηση Deque βασισμένη σε πίνακα. Πιο αποδοτική από τοLinkedListως ουρά/στοίβα.
-
Map: Συλλογή που αποθηκεύει ζεύγη κλειδιού-τιμής. Τα κλειδιά είναι μοναδικά.HashMap: Υλοποιείται με πίνακα κατακερματισμού. Το πιο γρήγορο για προσθήκη, διαγραφή και έλεγχο ύπαρξης. Δεν εγγυάται σειρά κλειδιών.LinkedHashMap: Υλοποιείται ως πίνακας κατακερματισμού + συνδεδεμένη λίστα. Εγγυάται τη σειρά εισαγωγής ή πρόσβασης.TreeMap: Υλοποιείται με κόκκινο-μαύρο δέντρο. Αποθηκεύει ζεύγη κλειδιού-τιμής σε ταξινομημένη σειρά κατά κλειδί. Αργότερο από τοHashMap.HashTable: Συγχρονισμένη έκδοση τουHashMap. Θεωρείται παρωχημένο.
Επίσης, υπάρχουν παρωχημένες κλάσεις που δεν ανήκουν στο JCF, αλλά συχνά συναντώνται:
VectorStackHashtableEnumeration(interface)