2013-06-20 26 views
5

Ruby'de okuma, yazma için daha hızlı olanı açıklayan herhangi bir kişi olabilir: Array veya Hash? Ve Array ve Hash için kullanım kılavuzları nelerdir?Yakut veya hash in Ruby

Array.new 
Hash.new 
+5

Tam olarak ne tür veri taşıdığınıza bağlıdır. – Jyothu

+1

Array ve Hash farklı hayvanlardır ve basit bir "Daha hızlı mı?" Ile kıyaslanamazlar. Karma erişimler, Array erişimiyle ilgili çevreleri * çalıştırarak, * Hash ile önemli bir çarpışmaya girersiniz. Bunu halletmenin yolları var ama temelde Diziler umursamıyor ve Hashes yapıyor ve avantajı ortadan kaldırabilir. Diziler, sıralar ve yığınlar için mükemmeldir ve arama için kokarlar. Karmalar rastgele erişim için mükemmeldir ve minyatür veritabanı tabloları gibi davranabilir, ancak sıralı görevler için iyi seçimler veya önemli çarpışmaların üstesinden gelemezler. –

cevap

2

okuma için ve Hash.new yazma Array.new daha hızlıdır. Bu Why Hashes Will Be Faster in Ruby 2.0'u izleyin.

+0

@ LuísRamalho İlk defa editörüm editörde yer değiştirdi. :) çok affediyorum .. :) –

3

Yalnızca bazı benzersiz sırasız değerleri depolamanız gerekiyorsa, lütfen Set.new'u kullanmayı düşünün. Sürekli olarak yazma ve okuma ile uygun karma tabanlı sınıf.

+1

Eğer 'Hash' ve 'Array' kullanım durumlarını tartışmak için bunu genişletirseniz, bu iyi bir cevap olur. – thomasfedb

+1

@thomasfedb Bağladığım video, harika. Biraz zaman ayırın ve izleyin. :) –