2013-06-20 15 views
5

Czy ktoś może wyjaśnić, co jest szybsze do czytania, pisania w Ruby: Array lub Hash? A jakie są zastosowania dla Array i Hash?Array lub hasz w Ruby

Array.new 
Hash.new 
+5

To zależy od rodzaju danych, którymi się posługujesz. – Jyothu

+1

Array i Hash to różne zwierzęta i nie można ich porównać z prostym "Który jest szybszy?" Hash uzyskuje dostęp do kółek wokół Array uzyskuje dostęp * do * napotkasz kluczową kolizję z hashem. Są sposoby, aby sobie z tym poradzić, ale zasadniczo Arrays nie dbają o to i Hashe, i mogą negować przewagę. Tablice świetnie nadają się do kolejek i stosów i śmierdzą w poszukiwaniu. Hashe są świetne do dostępu losowego i mogą działać jak miniaturowe tabele bazy danych, ale nie są dobrym wyborem dla zadań sekwencyjnych lub obsługi kolizji kluczy. –

Odpowiedz

2

do czytania i pisania Hash.new jest szybszy niż Array.new. Zobacz to Why Hashes Will Be Faster in Ruby 2.0.

+0

@ LuísRamalho Pierwszy raz mój egzemplarz został zamieniony w moim edytorze. :) więc wybaczcie mi na to .. :) –

3

Jeśli chcesz przechowywać tylko niektóre unikalne wartości nieuporządkowane, rozważ użycie opcji Set.new. Jest to wygodna klasa bazująca na hashach z pisaniem i czytaniem w stałym czasie.

+1

Jeśli rozszerzyliście to, aby omówić przypadki użycia 'Hash' i' Array', byłoby to dobrą odpowiedzią. – thomasfedb

+1

@thomasfedb Wideo, które łączę, jest niesamowite. Poświęć trochę czasu i patrz na to. :) –