我有散列的散列,像這樣:如何映射(並排序)散列哈希值?
%hash = (a => { b => 1, c =>2, d => 3}, a1 => { b => 11, c =>12, d => 13}, a2 => { b => 21, c =>22, d => 23})
我要提取的「b」的元件,並把它放到一個數組。現在,我正在通過哈希循環來做到這一點,但我認爲我可以通過使用map來改善效率。我敢肯定,如果這是哈希的數組,我會使用這樣的:
@hasharray = ({ b => 1, c =>2, d => 3}, { b => 11, c =>12, d => 13}, { b => 21, c =>22, d => 23}) @array = map { ($_->{b} => $_) } @hasharray
原諒我,如果我錯了,我仍然在學習地圖是如何工作的。但是我想知道的是,我將如何去映射哈希散列?這甚至可以使用地圖?我還沒有找到任何這樣做的例子。
更好的是,這段代碼的下一步是對數組進行排序。我非常確定這是可能的,但是我沒有足夠的智能使用地圖來自己弄清楚。我將如何一舉完成這一切?
謝謝。 賽斯
這很好,正是我所期待的。我用這個替換了26行代碼,並將該函數的性能從O(n)改進爲O(1)。謝謝! – sgsax 2010-08-27 16:15:12
好吧,它仍然需要迭代散列的值並對它們進行排序,所以它實際上並不是O(1)。 – Corey 2010-08-27 21:48:41