在每一个哈希键值中存储多个数值

ZDNet软件频道 时间:2004-02-13 作者:ZDNet China |  我要评论()
本文关键词:
当你需要在哈希表中的每一个键值都存储多个数值,你可以选择在其中存储一个数组而不仅仅是一个变量值。
本文译自Builder.com,未经许可请勿转载

当你需要在哈希表中的每一个键值都存储多个数值,你可以选择在其中存储一个数组而不仅仅是一个变量值。

如果你存储的数据是对应于同一个键值的文本,显而易见,哈希是最好的选择。在哈希的每一个元素中,你只能存储一个变量值。但是使用数组指针就可以使得在哈希的一个元素中存储一个数组指针,指向一个数组。

例如,考虑一下存储那些关联到城市的邮政编码。因为一个城市可以有多个邮政编码,你就需要考虑设计一个数组指针,用于将指针存储到哈希表中去。看看下面这个例子:

{

chomp;

($zip, $state, $city) = split / /;

push @{$zipcodes{"$city, $state"}}, $zip;

}

for $city (sort keys %zipcodes)

{

print "$city: @} "

}

__DATA__

40502 KY LEXINGTON

40503 KY LEXINGTON

40504 KY LEXINGTON

40505 KY LEXINGTON

40511 KY LEXINGTON

40513 KY LEXINGTON

40514 KY LEXINGTON

40515 KY LEXINGTON

40516 KY LEXINGTON

40517 KY LEXINGTON

40202 KY LOUISVILLE

40213 KY LOUISVILLE

40214 KY LOUISVILLE

40215 KY LOUISVILLE

40217 KY LOUISVILLE

40220 KY LOUISVILLE

40222 KY LYNDON

40241 KY LYNDON

40242 KY LYNDON

如果总是存储一些数组指针,而且只有一个元素,你可以简化代码段。否则,你需要测试哈希的元素,看看这个元素究竟是一个数组指针还是一个简单的变量,这样才能正确地进行操作。

在一个单独的哈希元素中采用使用数组指针来存储多值的方法。


作者:James Brown,有超过20年的产业开发经验,他所从事的范围很广,包括数字硬件设计、网络操作系统开发和分布式计算。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134