Il problema:
Diciamo che voglio creare un'app java (che attualmente usa java 8) che funziona come un dizionario. Voglio che l'app fornisca all'utente la capacità di aggiungere e cercare parole, ogni parola deve contenere un nome , un significato e zero o più esempi . Inoltre, voglio che l'utente sia in grado di aggiungere altri esempi a una parola già memorizzata nel dizionario e di aggiungere più significati alla stessa parola, per questo il dizionario deve rilevare quando un utente prova ad aggiungere una parola duplicata e invece di creare una nuova voce, dovrebbe aggiungere le nuove informazioni per la parola già esistente. Infine, ho bisogno che l'app memorizzi tutte queste informazioni in modo che non le dimenticalo ogni volta che l'utente chiude l'applicazione.
Il mio approccio:
Ovviamente, non sto chiedendo a tu di implementare questa app, quindi ecco la mia idea. So che java ha una classe Dictionary
, quindi potrei creare un Hashmap<String, Word>
per gestire tutte le voci del dizionario, dove la chiave sarebbe il 'nome' della parola, e Word
sarebbe essere un oggetto contenente i significati e gli esempi come due elenchi di stringhe. In questo modo ho potuto facilmente cercare una parola e aggiungere o recuperare informazioni dall'oggetto Word. Inoltre, in questo modo, se l'utente tenta di aggiungere una parola, se Hashmap contiene già la parola, non creerà un nuovo oggetto di Word, ma aggiungerà le informazioni a una esistente (una specie di cosa faresti con un peso mosca) .
Ora, per memorizzare il dizionario, dato che la mia idea è di lavorare con oggetti Word, stavo pensando di usare un file JSON per memorizzare il dizionario come una serie di parole.
La domanda:
Ora, come ho detto, non sto richiedendo un'implementazione di questa app. Quello che voglio sapere è se il mio approccio è una buona idea e magari discutere alcune implementazioni alternative. Quindi, una Hashmap è una buona struttura per mantenere un dizionario? È una buona idea usare un oggetto Word? Utilizzare un file JSON è un buon modo per archiviare questo tipo di dati?
Bonus: Cosa succede se voglio aggiungere le parole in ordine alfabetico?