数组 – Perl中数组’一维’散列的优点
发布时间:2020-12-16 06:11:09 所属栏目:大数据 来源:网络整理
导读:我只是想知道在一维数组上使用一维散列(即只有键,没有值 – 我们不关心它们)的效率. 我想为此目的使用哈希的主要原因是我可以使用exists函数来查看“条目”是否已经存在.哈希也非常适合不重复密钥吗?对于数组,我需要设置我自己的涉及grep的检查,我认为这会
我只是想知道在一维数组上使用一维散列(即只有键,没有值 – 我们不关心它们)的效率.
我想为此目的使用哈希的主要原因是我可以使用exists函数来查看“条目”是否已经存在.哈希也非常适合不重复密钥吗?对于数组,我需要设置我自己的涉及grep的检查,我认为这会更慢. 然后,对于某些操作,将遍历该散列/数组. 我很想听到有关这方面的任何见解,并提前感谢! 解决方法exists $hash{ $key } 是一个很好的,简短的表达,清晰易用.明显 !!grep { $_ eq $key } @array 不是很短,但是 $key ~~ @array # smart match 甚至更短.所以从5.10开始,它就像在语法上一样容易测试智能匹配. 因此,根据数组和散列之间的性能差异进行猜测,我可以想象智能匹配对于一小部分项目执行速度会更快,但散列将远远超过具有大量项目的数组查找. 但是,无论如何你应该达到Benchmark的性能. 这就是原因.在Strawberry perl上,即使列表大小为1,散列查找也优于字符串匹配: array_lookup 577701/s -- -46% hash_lookup 1068376/s 85% -- 列表中有2个项目: array_lookup 464684/s -- -57% hash_lookup 1068376/s 130% -- 有20个项目: array_lookup 181554/s -- -83% hash_lookup 1068376/s 488% -- 我会使用哈希. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |