Qualcuno potrebbe spiegare i principali vantaggi per la scelta di uno rispetto all'altro e gli svantaggi che derivano da tale scelta?Quali sono i pro e i contro di LinkedHashMaps rispetto a LinkedHashSet?
risposta
Essi risolvono diversi problemi, LinkedHashMap esegue una mappatura delle chiavi ai valori, un LinkedHashSet memorizza semplicemente una raccolta di elementi senza duplicati.
Un legata mappa hash è per le coppie chiave/valore di mappatura - ad esempio, i nomi di memorizzazione e le età:
Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);
D'altra parte, un insieme di hash è collegato per la memorizzazione di una raccolta di una cosa - - nomi, ad esempio:
Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");
Stavo solo cercando il codice sorgente di ArrayList solo per essere sicuro di dover usare un Set (che ha buone prestazioni di ricerca) invece di un ArrayList (che deve attraversare tutti i record per trovare qualcosa) –
Lo scopo di LinkedHashMap su HashMap è che LinkedHashMap utilizza anche una LinkedList internamente per memorizzare l'ordine in cui sono state aggiunte le coppie chiave/valore.Quindi l'iterazione su LinkedHashMap darà come risultato coppie chiave/valore nell'ordine in cui sono state aggiunte mentre una HashMap classica verrà iterata in base all'ordine del codice hash di ciascuna chiave. –
Questo è corretto, ma dal momento che la domanda stava confrontando LinkedHashMaps in LinkedHashSets ho deciso di concentrarmi sulle differenze, piuttosto che sui punti in comune. :-) – Benson
Uno è un set e uno è una mappa. Scegli la struttura dati corretta per un determinato scenario.
Un set ha solo valori, non è possibile inserire duplicati. Una mappa ha una coppia chiave/valore. Hanno usi diversi.
Un set verrà utilizzato come raccolta, passando in un gruppo di oggetti, mentre una mappa è utile quando si dispone di una chiave univoca per identificare ciascun elemento e si desidera poter accedervi tramite tale chiave.
LinkedHashSet contengono internamente una lista doppiamente concatenata che attraversa tutte le voci che definisce l'ordine degli elementi. Questa classe consente elementi null.
Questa implementazione di classe non è sincronizzata, quindi deve essere sincronizzata esternamente. LinkedHashMap non può essere sincronizzata e deve essere sincronizzato esternamente
Ad esempio:
Map map = Collections.synchronizedMap(new LinkedHashMap());
Tranne che memorizza LinkedHashSet valori singoli per ciascun elemento e memorizza LinkedHashMap pair valore di chiave /.
Nello schema seguente è possibile vedere java.util.Collections. scatole solidi mostrano implementazione della classe concreta
alt text http://www.softfinity.com/diag1.png
LinkedHashMap
e LinkedHashSet
ha una sola differenza e che viene da HashMap
e HashSet
differenza, i loro genitori. Ancora una volta, HashSet
è solo una variazione di HashMap
. Puoi dire HashSet
come HashMap
con tutti i valori che puntano a un singolo oggetto finale. Pertanto, entrambi non ti danno molte differenze.
Utilizzando LinkedHashSet
, sarà necessario utilizzare un solo oggetto finale diverso dalle chiavi. Utilizzando LinkedHashMap
, se si impostano valori come nulli per tutte le chiavi, è meglio di LinkedHashSet anche per Imposta scopo.
- 1. Quali sono i pro e i contro dell'uso di GenericForeignKey rispetto all'ereditarietà multipla rispetto a OneToOneField?
- 2. Quali sono i pro e i contro di Anchor Modeling?
- 3. Quali sono i pro e i contro di un TreeSet
- 4. Quali sono i pro e i contro dell'uso di Global.asax?
- 5. Quali sono i pro e i contro di DynamoDB rispetto ad altri database NoSQL?
- 6. Quali sono i pro e i contro di rspec mocking rispetto ad altri framework beffardi?
- 7. Quali sono i pro e i contro di RemObjects PascalScript rispetto allo script DWS?
- 8. Quali sono i tipi di modelli utilizzati, pro e contro?
- 9. Quali sono i pro e i contro di lasciare a Google l'hosting di jQuery per me?
- 10. Quali sono i pro e i contro di git-flow vs github-flow?
- 11. Quali sono i pro e i contro della scrittura di applicazioni C#/XAML rispetto a C++/XAML WinRT in Windows8?
- 12. Quali sono i pro e i contro dell'uso di configChanges = "orientation" per i dispositivi Android?
- 13. Quali sono i pro/contro dell'utilizzo di SRVANY rispetto alla creazione di un servizio Windows?
- 14. Quali sono i pro e i contro di asset_packager e Jammit?
- 15. Quali sono i pro e i contro di entrambi Jade e EJS per il modello Node.js?
- 16. WPF - MVVM - Quali sono i pro e i contro delle varie tecniche di creazione di viste?
- 17. Quali sono i pro e i contro dell'input delimitato generale di Ruby? (percentuale di sintassi)
- 18. Quali sono i pro e i contro dell'uso di un motore di template come Jade?
- 19. Quali sono i pro e i contro dell'uso di variabili di trasmissione in un singleton?
- 20. Quali sono i pro e i contro della scrittura di C#/Xaml rispetto alle applicazioni WinRT HTML/JavaScript in Windows8
- 21. Quali sono le situazioni o i pro e i contro dell'uso di C++/CLI su C#
- 22. Quali sono i pro e i contro dell'uso di una flag enum?
- 23. Quali sono i pro e i contro dell'utilizzo di uno o più DbContext con EF?
- 24. Quali sono i pro e i contro dell'utilizzo di un'e-mail come nome utente?
- 25. Quali sono i pro e i contro delle procedure di chiamata in VB.NET?
- 26. pro e contro di TryCatch rispetto a TryParse
- 27. Quali sono i pro e i contro di HTML5 Canvas vs. SVG + Raphael.js?
- 28. Quali sono i pro e i contro del linguaggio di programmazione Icon?
- 29. newid() vs newsequentialid() Quali sono le differenze/pro e contro?
- 30. Quali sono i pro e i contro dei test manuali dell'unità rispetto ai test automatizzati delle unità?
Mi sono confuso e ho fatto una domanda stupida, grazie per le risposte rapide. –