我有散列的散列,像这样:如何映射(并排序)散列哈希值?
%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