xingyu655 发表于 2018-8-31 13:29:33

Perl开发的学习-5

  数组的优缺点:
  优点:元素的内容可由基址+下标*元素大小就可直接访问,是访问最快的方法。缺点是通过元素内容直接得出元素的位置。比喻一个单词统计功能,需要记录单词和单词出现在次数如下:
  Hello world is really best good …..
  2 3 1 7 4 8 ……..
  当我们需要建立这样一一对应关系时,我们发现如果用数组分别存储时,我们就需要不停的枚举,而不是直接对应。代价就是有多少单词就需要搜索多少次数组。
  关联数组,又称Hash(哈希),散列。是通过建立元素内容与元素位置的对应关系进行分散存储的一种数据结构。分散存储的方法有很多种,常见是通过一个函数(散列函数)将位置值简单变量转换成分散的地址值,实现按值存储。






  # cat hash.pl
  #!/usr/bin/perl
  %h=(a=>1,b=>3);
  print "%h\n";
  print %h;
  $a=%h;
  print "\n$a\n";
  $aoh=[{'k11'=>'v11','k12'=>'v12'},{'k21'=>'v21','k22'=>'v22'}];
  $hash=$aoh->;
  print "@{[%$hash]}\n";
  $hoh={k1=>{key1=>'value1',key2=>'value2'},k2=>{key1=>'val1',key2=>'val2'}};
  print "$hoh->{k1}{key1}\n";
  print "@{$hoh->{k1}}{'key1','key2'}";
  # perl hash.pl
  %h
  a1b3
  2/8
  k11 v11 k12 v12
  value1
  value1 value2#

页: [1]
查看完整版本: Perl开发的学习-5