Mam wymóg przechowywania od 2 do 15 milionów kont (które są String
o długości 15) w strukturze danych dla celów wyszukiwania i sprawdzania unikalności. Początkowo planowałem przechowywać je w postaci HashSet
, ale wątpię, aby szybkość wyszukiwania była wolna z powodu kolizji i ostatecznie będzie wolniejsza niż mapa drzewa (przy użyciu wyszukiwania binarnego).Czy powinienem użyć `HashSet` lub` TreeSet` dla bardzo dużego zestawu danych?
Nie ma wymogu sortowania danych. Używam Java 7. Mam system 64G z 48G dedykowany dla tej aplikacji.
To pytanie nie jest duplikatem HashSet and TreeSet performance test dlatego, że pytanie jest o wykonywaniu dodawanie elementów do Set
i to pytanie jest o wydajności sprawdzenia istniejącego Set
dla zduplikowanych wartości.
również odsyłają [to] (http://stackoverflow.com/questions/1463284/hashset-vs-treeset) –
Cześć Ankuar, dzięki. Test wydajności w łączu oparty jest na liczbach całkowitych 500K w już posortowanej kolejności. Mam 10 milionów napisów i chciałem zrozumieć możliwość kolizji hash.W drugim linku znajduje się podpowiedź, która była hwlpful. Spróbuję i opublikuję moje spostrzeżenia. – Mohan
Wyszukiwanie polega na sprawdzeniu, czy określony ciąg jest obecny w zestawie ciągów. Jest to samodzielny program java i nie może sobie pozwolić na użycie czegoś takiego jak Redis do przechowywania danych. – Mohan