I tre approcci principali a questo hanno approcci fondamentalmente diversi e dipendono davvero da quali sono i tuoi requisiti.
Hai un dizionario di qualche tipo. In molte lingue, dictionary
è sinonimo di Map
e questo ci porterà lungo i diversi percorsi.
Il primo approccio consiste nell'utilizzare un database di qualche tipo. È possibile archiviarlo in un database reale esterno al sistema: Oracle, MSSQL, MySQL, PostgreSQL sono i grandi nomi che vengono in mente. Con questo approccio, il motore di database fa tutto il lavoro per cercare le cose e completamente esterno alla tua applicazione. Questo ha il vantaggio che è possibile lavorare con strumenti esterni, ma ha il vantaggio che è esso stesso uno strumento esterno.
Il prossimo è il più semplice database incorporato. Berkley Database, opzionalmente attraverso SQLLite come livello per rendere l'accesso ai dati un po 'più familiare alla famiglia SQL. Il database Berkley stesso riempirà il ruolo di coppie chiave di valori (è una semplice mappa hash dietro le quinte). Ciò significa ottenere altre librerie (ma non strumenti) per memorizzare i tuoi dati.
Comprendendo che questo è un dizionario di testo ci sono strutture dati specifiche che sono ottimizzate per elaborare strutture di testo. Il trie è un albero specializzato per lavorare con il testo. Questa è solo una delle molte strutture dati: le specifiche dipendono davvero da cosa stai facendo con i tuoi dati una volta che li hai. La mappa hash è un altro modo per memorizzare i dati dopo che sono stati letti (e ci sono anche molte forme della mappa hash).
Potresti scoprire che qualcos'altro funziona meglio - dipende da cosa stai facendo, quanti dati hai, dal rapporto tra letture e scritture (ci sono mai delle scritture?), conoscendo la dimensione dei dati prima della mano oppure no, se vuoi essere in grado di effettuare ricerche su dati parziali, ecc ... Tutte queste cose dovrebbero entrare in gioco nella scelta della struttura dati corretta.