Διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C

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

Διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C
Διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C

Βίντεο: Διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C

Βίντεο: Διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C
Βίντεο: ΛΕΞ - ΟΧΙ ΣΗΜΕΡΑ (PROD BY ORTIZ) | LEX - OXI SIMERA (Official Music Video 4K) 2024, Νοέμβριος
Anonim

Βασική διαφορά – Generic vs Non-Generic Collection στο C

Μια γενική συλλογή είναι μια κλάση που παρέχει ασφάλεια τύπου χωρίς να χρειάζεται να προέρχεται από έναν τύπο συλλογής βάσης και να υλοποιεί μέλη ειδικά για τον τύπο. Μια μη γενική συλλογή είναι μια εξειδικευμένη κλάση για αποθήκευση και ανάκτηση δεδομένων που παρέχει υποστήριξη για στοίβες, ουρές, λίστες και hashtables. Η βασική διαφορά μεταξύ Generic και Non-generic Collection στο C είναι ότι μια Generic Collection πληκτρολογείται έντονα ενώ μια Non-Generic Collection δεν πληκτρολογείται έντονα.

Τι είναι η Generic Collection σε C;

Οι μη γενικές συλλογές όπως ArrayList, Queue, Stack, κ.λπ.μπορεί να αποθηκεύσει στοιχεία διαφορετικών τύπων δεδομένων. Κατά τη λήψη των στοιχείων, ο προγραμματιστής θα πρέπει να πληκτρολογήσει cast στον σωστό τύπο δεδομένων. Διαφορετικά, μπορεί να προκαλέσει εξαίρεση χρόνου εκτέλεσης. Οι γενικές τάξεις συλλογής μπορούν να χρησιμοποιηθούν για να ξεπεραστεί αυτό το ζήτημα. Οι γενικές συλλογές αποθηκεύουν στοιχεία εσωτερικά σε συστοιχίες των πραγματικών τους τύπων. Επομένως, δεν απαιτείται χύτευση τύπου. Μπορούν να χρησιμοποιηθούν για την αποθήκευση στοιχείων του συγκεκριμένου τύπου ή τύπων. Ορισμένες γενικές κατηγορίες συλλογής είναι List, Dictionary, SortedList, HashSet, Queue, Stack.

Διαφορά μεταξύ γενικής και μη γενικής συλλογής στο C
Διαφορά μεταξύ γενικής και μη γενικής συλλογής στο C

Η GenericList περιέχει στοιχεία καθορισμένου τύπου. Μπορεί να αυξήσει τη λίστα ανάλογα κατά την προσθήκη στοιχείων. Όταν υπάρχει μια δήλωση ως εξής, όλα τα στοιχεία που μπορούν να αποθηκευτούν στη λίστα1 πρέπει να είναι ακέραιοι, Λίστα1 – νέα λίστα ();

Το Γενικό Λεξικό στην C είναι μια συλλογή κλειδιών και τιμών. Όταν υπάρχει μια δήλωση ως εξής, το λεξικό αντικειμένου1 μπορεί να αποθηκεύσει κλειδιά τύπου int και τιμές τύπου συμβολοσειράς.

Λεξικό λεξικό1=νέο λεξικό ();

Μια συλλογή Generic SortedList αποθηκεύει ζεύγη κλειδιών και τιμών σε αύξουσα σειρά κλειδιού από προεπιλογή. Το παρακάτω παράδειγμα αποθηκεύει το κλειδί τύπου int και την τιμή του τύπου συμβολοσειράς.

SortedList s0=νέα SortedList ();

Αυτά είναι λίγα παραδείγματα για Generic Collection σε C. Αυτές οι συλλογές μπορούν να αποθηκεύσουν πολλαπλές τιμές των καθορισμένων τύπων δεδομένων. Έτσι, είναι έντονα πληκτρολογημένα.

Τι είναι η μη γενική συλλογή στο C;

Οι πίνακες μπορούν να χρησιμοποιηθούν για την αποθήκευση πολλών στοιχείων. Ένα μειονέκτημα είναι ότι μπορεί να αποθηκεύσει στοιχεία του ίδιου τύπου δεδομένων. Υπάρχουν κλάσεις στη C που μπορούν να χρησιμοποιηθούν για την αποθήκευση πολλών τιμών ή αντικειμένων γνωστά ως συλλογές. Οι συλλογές βοηθούν στην αποθήκευση, ενημέρωση, διαγραφή, αναζήτηση, ταξινόμηση αντικειμένων. Το μέγεθος της συλλογής μπορεί να αυξηθεί ή να μειωθεί δυναμικά.

Ορισμένες μη γενικές κλάσεις συλλογής είναι οι ArrayList, SortedList, Stack, Queue και HashTable. Κάθε κλάση συλλογής υλοποιεί τη διεπαφή IEnumerable. Βοηθά στην επανάληψη μέσω των στοιχείων των στοιχείων της συλλογής χρησιμοποιώντας τον βρόχο foreach.

Το ArrayList είναι μια εναλλακτική λύση σε έναν πίνακα. Εάν υπάρχει ένας πίνακας που μπορεί να αποθηκεύσει 10 στοιχεία, δεν μπορεί να αποθηκεύσει 20 στοιχεία. Εάν ο πίνακας έχει αρχικοποιηθεί σε 10 στοιχεία αλλά αποθηκεύει μόνο 5 στοιχεία, τότε τα υπόλοιπα είναι μη χρησιμοποιημένα. Επομένως, ένας πίνακας είναι σταθερός. Σε μια ArrayList, είναι δυνατή η προσθήκη ή η αφαίρεση στοιχείων ανάλογα με το ευρετήριο. Επιτρέπει δυναμική κατανομή μνήμης. Η μέθοδος ταξινόμησης μπορεί να χρησιμοποιηθεί για την ταξινόμηση των στοιχείων σε αύξουσα σειρά.

Ο HashTable χρησιμοποιείται για να αναπαραστήσει μια συλλογή ζευγών τιμών κλειδιών. Είναι οργανωμένα με βάση τον hashCode του κλειδιού. Επομένως, κάθε στοιχείο έχει ένα ζεύγος βασικών τιμών. Το κλειδί μπορεί να χρησιμοποιηθεί για πρόσβαση σε ένα συγκεκριμένο στοιχείο της συλλογής. Η Στοίβα αντιπροσωπεύει την τελευταία είσοδο και την πρώτη πρόσβαση στα στοιχεία. Η ουρά χρησιμοποιείται για την πρώτη πρόσβαση στα στοιχεία πρώτης εξόδου. Αυτές είναι μερικές από τις μη γενικές συλλογές που υποστηρίζονται από την C. Αυτές οι συλλογές μπορούν να αποθηκεύουν στοιχεία διαφορετικών τύπων.

Ποια είναι η ομοιότητα μεταξύ της γενικής και της μη γενικής συλλογής στο C;

Τόσο η γενική όσο και η μη γενική συλλογή μπορούν να χρησιμοποιηθούν για την αποθήκευση πολλών στοιχείων σε C

Ποια είναι η διαφορά μεταξύ της γενικής και της μη γενικής συλλογής στο C;

Generic vs Non-Generic Collection στο C

Μια γενική συλλογή είναι μια κλάση που παρέχει ασφάλεια τύπου χωρίς να χρειάζεται να προέρχεται από έναν τύπο συλλογής βάσης και να εφαρμόζει μέλη ειδικά για τον τύπο. Μια μη γενική συλλογή είναι μια εξειδικευμένη τάξη για αποθήκευση και ανάκτηση δεδομένων που παρέχει υποστήριξη για στοίβες, ουρές, λίστες και πίνακες κατακερματισμού.
Χώρος ονομάτων
Οι κατηγορίες Generic Collection βρίσκονται στο Σύστημα. Συλλογές. Χώρος ονομάτων γενικής χρήσης. Οι κλάσεις Non-generic Collection βρίσκονται στο Σύστημα. Χώρος ονομάτων συλλογών.
Τύπος
Μια γενική συλλογή πληκτρολογείται έντονα. Μια μη γενική συλλογή δεν πληκτρολογείται έντονα.
Αποθήκευση στοιχείων
Οι Γενικές Συλλογές αποθηκεύουν στοιχεία εσωτερικά σε πίνακες των πραγματικών τους τύπων. Οι μη γενικές συλλογές αποθηκεύουν στοιχεία εσωτερικά σε πίνακες αντικειμένων, ώστε να μπορούν να αποθηκεύουν οποιονδήποτε τύπο δεδομένων.

Σύνοψη – Generic vs Non-Generic Collection στο C

Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ της Γενικής και της Μη γενικής συλλογής στην C. Η διαφορά μεταξύ της Γενικής και της Μη Γενικής Συλλογής είναι ότι μια Γενική Συλλογή είναι έντονα πληκτρολογημένη ενώ μια Μη Γενική Συλλογή δεν πληκτρολογείται έντονα.

Συνιστάται: