嗨,我很難做出這個散列,並通過創建和鍵,值對排序。我怎麼可以通過創建和鍵,值對排序這個散列
這裏是我的代碼
hash_answers = {}
unless answers.blank?
answers.each_with_index do |ans ,index|
voted_up_users = ans.votes_up_by_all_users(ans)
voted_down_users = ans.votes_down_by_all_users(ans)
hash_answers[ans.id] = voted_up_users.count -voted_down_users.count #line one
hash_answers[index+1] = ans.created_at # line 2
end
end
如果我只有在代碼行1,那麼這不就行了2下面的代碼工作正常,我
@answers = hash_answers.sort_by { |key, value| value }.reverse
,但我也想通過craeted_at對它進行排序
我怎樣才能實現這一目標或進行哈希以另一種方式
任何幫助將是最欣賞
感謝
你能否更詳細地描述你想要達到的目標? – muirbot
我不明白你想做什麼,但是HashMap是無序的集合。你不能對它們進行排序。 – Cubic
實際上,您可以對散列進行排序,但其中沒有太多價值。散列維護其插入順序,因此如果您通過鍵對現有散列進行排序並從結果列表構建新散列,則新散列將保持排序。它不會更有效率。 –