Czy ktoś mógłby wyjaśnić główne korzyści związane z wyborem jednego z drugim i szkodliwościami, które towarzyszą temu wyborowi?Jakie są plusy i minusy LinkedHashMaps vs. LinkedHashSets?
Odpowiedz
Rozwiązują one różne problemy, LinkedHashMap mapuje klucze do wartości, LinkedHashSet po prostu przechowuje kolekcję rzeczy bez duplikatów.
Połączony hash mapa jest dla par klucz/wartość mapowania - na przykład zapisywanie nazw i wiekowe:
Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);
Z drugiej strony, połączony zestaw hash jest do przechowywania kolekcji z jednej strony - - nazwy, na przykład:
Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");
Właśnie szukałem kodu źródłowego tablicy ArrayList, aby upewnić się, że muszę użyć zestawu (który ma dobrą wydajność wyszukiwania) zamiast ArrayList (który musi przechodzić wszystkie rekordy, aby znaleźć coś) –
Celem LinkedHashMap ponad HashMap jest to, że LinkedHashMap również wewnętrznie wykorzystuje LinkedList do przechowywania porządku, w którym zostały dodane pary klucz/wartość.Zatem iteracja na LinkedHashMap spowoduje utworzenie pary klucz/wartość w kolejności, w jakiej zostały dodane, podczas gdy klasyczna HashMap będzie iterować w oparciu o kolejność kodu skrótu każdego klucza. –
To prawda, ale ponieważ pytanie było porównywanie LinkedHashMaps do LinkedHashSets postanowiłem skupić się na różnicach, a nie na wspólnych cechach. :-) – Benson
Jeden to zestaw, a to mapa. Wybierz poprawną strukturę danych dla danego scenariusza.
Zestaw ma prawidłowe wartości, nie można umieścić duplikatów. Mapa ma parę klucz/wartość. Mają różne zastosowania.
Zestaw zostanie użyty jako kolekcja, przechodząc w grupie obiektów, podczas gdy mapa jest przydatna, gdy masz unikalny klucz do identyfikacji każdego elementu i chcesz mieć do niego dostęp za pomocą tego klucza.
LinkedHashSet wewnętrznie zawierają podwójnie połączonej listy biegnącej przez wszystkich swoich wpisów, które określa kolejność elementów. Ta klasa zezwala na elementy puste.
Ta implementacja klasy nie jest zsynchronizowana, dlatego należy ją zsynchronizować zewnętrznie. LinkedHashMap nie jest zsynchronizowany albo i muszą być zsynchronizowane z zewnątrz
Na przykład:
Map map = Collections.synchronizedMap(new LinkedHashMap());
Inne niż przechowująca LinkedHashSet pojedynczych wartości na elemencie i LinkedHashMap sklepach pary wartość klucza /.
Na poniższym diagramie widać java.util.Collections. skrzynie stałe pokazać konkretną implementację klasy
alt text http://www.softfinity.com/diag1.png
LinkedHashMap
i LinkedHashSet
ma tylko jedną różnicę i że przychodzi HashMap
i HashSet
różnicy, ich rodziców. Ponownie, HashSet
jest po prostu odmianą HashMap
. Możesz powiedzieć HashSet
jako HashMap
ze wszystkimi wartościami wskazującymi na pojedynczy obiekt końcowy. Dlatego oba nie dają dużych różnic.
Używając LinkedHashSet
, będziesz używać tylko jednego końcowego obiektu, innego niż klucze. Korzystanie z LinkedHashMap
, jeśli ustawisz wartości jako null dla wszystkich kluczy, to jego lepsze niż LinkedHashSet dla Set celu również.
- 1. Jakie są plusy i minusy modelowania kotwicy?
- 2. Jakie są plusy i minusy Git-Flow vs Github-Flow?
- 3. newid() vs newsequentialid() Jakie są różnice/plusy i minusy?
- 4. OcMock vs OcMockito - jakie są plusy i minusy
- 5. Wypoczynek vs Wcf plusy i minusy
- 6. Plusy i minusy: Hibernacja vs. EJB 3
- 7. Plusy i minusy READ_COMMITTED_SNAPSHOT
- 8. Jakie są plusy i minusy używania `select table_name. *`?
- 9. Jakie są plusy i minusy używania zmiennych rozgłoszeniowych w singleton?
- 10. Jakie są twoje plusy i minusy git po użyciu?
- 11. Jakie są plusy i minusy RemObjects PascalScript kontra skrypt DWS?
- 12. Jakie są plusy i minusy podstawowego uwierzytelniania HTTP
- 13. ServiceBus Architektura Plusy i minusy
- 14. Jakie są plusy i minusy pisania aplikacji WinRT C#/Xaml vs. HTML/JavaScript w Windows8
- 15. Jakie są plusy i minusy używania VARCHAR vs TEXT do przechowywania małych dokumentów XML w MySQL?
- 16. W python, jakie są plusy i minusy importowania klasy vs. importowanie modułu klasy?
- 17. SELECT * - plusy/minusy
- 18. SparkSQL vs Hive on Spark - Różnice i plusy i minusy?
- 19. php imagecopyresized vs imagecopyresampled vs imagecopy plusy/minusy
- 20. Plusy i minusy systemów komentujących i API (Disqus vs Facebook Comments vs Intense Debate vs Echo)?
- 21. Pliki mapowane w pamięci: plusy i minusy?
- 22. GLib v APR plusy i minusy każdego
- 23. Identyfikator okaziciela ASP.NET vs JWT Plusy i minusy
- 24. ktoś próbował Neo4J vs Titan - plusy i minusy
- 25. Jakie są plusy i minusy używania matryc, kątów Eulera i/lub kwateranów do reprezentacji rotacji?
- 26. Programowanie w wirtualnej maszynie - plusy i minusy
- 27. Proxyquire, ReWire, SandboxedModule i Sinon: plusy i minusy
- 28. Plusy i minusy węzła sass i gulp-sass
- 29. Jakie są plusy i minusy używania bazy danych dla IPC do udostępniania danych zamiast przekazywania wiadomości?
- 30. Jakie są plusy i minusy przy użyciu wizualnych komponentów markowe Studio dla danych
Byłem zdezorientowany i zadałem głupie pytanie, dzięki za szybkie odpowiedzi. –