Differenza chiave: raccolta generica e non generica in C
Una raccolta generica è una classe che fornisce la sicurezza dei tipi senza dover derivare da un tipo di raccolta di base e implementare membri specifici del tipo. Una raccolta non generica è una classe specializzata per l'archiviazione e il recupero dei dati che fornisce supporto per stack, code, elenchi e tabelle hash. La differenza fondamentale tra raccolta generica e non generica in C è che una raccolta generica è fortemente tipizzata mentre una raccolta non generica non è fortemente tipizzata.
Cos'è la raccolta generica in C?
Le raccolte non generiche come ArrayList, Queue, Stack, ecc.può memorizzare elementi di diversi tipi di dati. Quando ottiene gli elementi, il programmatore deve digitare cast nel tipo di dati corretto. Altrimenti, può causare un'eccezione di runtime. Le classi di raccolta generiche possono essere utilizzate per superare questo problema. Le raccolte generiche memorizzano gli elementi internamente in array dei loro tipi effettivi. Pertanto, non è richiesta la fusione del tipo. Possono essere utilizzati per memorizzare elementi del tipo o dei tipi specificati. Alcune classi di raccolta generiche sono List, Dictionary, SortedList, HashSet, Queue, Stack.
L'elenco generico contiene elementi del tipo specificato. Può aumentare l'elenco di conseguenza quando si aggiungono elementi. Quando è presente un'istruzione come segue, tutti gli elementi che possono essere memorizzati nella lista1 devono essere interi, Elenco elenco1 – nuovo elenco ();
Il dizionario generico in C è una raccolta di chiavi e valori. Quando è presente un'istruzione come segue, il dizionario oggetti1 può memorizzare chiavi di tipo int e valori di tipo stringa.
Dizionario dizionario1=nuovo dizionario ();
Una raccolta Generic SortedList memorizza le coppie di chiavi e valori in ordine crescente di chiave per impostazione predefinita. Di seguito l'esempio memorizza la chiave di tipo int e il valore di tipo stringa.
SortedList s0=nuovo SortedList ();
Questi sono alcuni esempi di raccolta generica in C. Queste raccolte possono memorizzare più valori dei tipi di dati specificati. Quindi, sono fortemente tipizzati.
Cos'è la raccolta non generica in C?
Gli array possono essere utilizzati per memorizzare più elementi. Uno svantaggio è che può memorizzare elementi dello stesso tipo di dati. Esistono classi in C che possono essere usate per archiviare molti valori o oggetti noti come raccolte. Le raccolte aiutano a memorizzare, aggiornare, eliminare, cercare, ordinare gli oggetti. La dimensione della raccolta può essere aumentata o diminuita in modo dinamico.
Alcune classi di raccolta non generiche sono ArrayList, SortedList, Stack, Queue e HashTable. Ogni classe di raccolta implementa l'interfaccia IEnumerable. Aiuta a scorrere gli elementi degli elementi nella raccolta utilizzando il ciclo foreach.
ArrayList è un' alternativa a un array. Se esiste un array che può memorizzare 10 elementi, non può memorizzare 20 elementi. Se l'array è inizializzato su 10 elementi ma memorizza solo 5 elementi, il resto non viene utilizzato. Pertanto, un array è fisso. In un ArrayList, è possibile aggiungere o rimuovere elementi a seconda dell'indice. Consente l'allocazione dinamica della memoria. Il metodo di ordinamento può essere utilizzato per ordinare gli elementi in ordine crescente.
La HashTable viene utilizzata per rappresentare una raccolta di coppie di valori chiave. Sono organizzati in base all'hashCode della chiave. Pertanto, ogni elemento ha una coppia chiave-valore. La chiave può essere utilizzata per accedere a un particolare elemento della raccolta. Lo Stack rappresenta l'ultimo accesso, il primo in uscita, agli oggetti. La coda viene utilizzata per l'accesso first in first out degli elementi. Queste sono alcune delle raccolte non generiche supportate da C. Queste raccolte possono memorizzare elementi di diversi tipi.
Qual è la somiglianza tra raccolta generica e non generica in C?
È possibile utilizzare sia la raccolta generica che quella non generica per archiviare più elementi in C
Qual è la differenza tra raccolta generica e non generica in C?
Raccolta generica e non generica in C |
|
Una raccolta generica è una classe che fornisce la sicurezza del tipo senza dover derivare da un tipo di raccolta di base e implementare membri specifici del tipo. | Una raccolta non generica è una classe specializzata per l'archiviazione e il recupero dei dati che fornisce supporto per stack, code, elenchi e tabelle hash. |
Spazio dei nomi | |
Le classi di raccolta generica sono nel sistema. Collezioni. Spazio dei nomi generici. | Le classi Raccolta non generica sono nel Sistema. Spazio dei nomi delle raccolte. |
Tipo | |
Una raccolta generica è fortemente tipizzata. | Una raccolta non generica non è fortemente tipizzata. |
Memorizzazione di elementi | |
Le raccolte generiche memorizzano gli elementi internamente in array dei loro tipi effettivi. | Le raccolte non generiche memorizzano elementi internamente in array di oggetti in modo che possano archiviare qualsiasi tipo di dati. |
Riepilogo – Raccolta generica e non generica in C
Questo articolo ha discusso la differenza tra raccolta generica e non generica in C. La differenza tra raccolta generica e non generica è che una raccolta generica è fortemente tipizzata mentre una raccolta non generica non è fortemente tipizzata.