Perl如何以更快的方式遍历和比较两个不同数组中的所有元素?

时间:2017-08-08 11:14:03

标签: perl

假设有两个数组,每个数组都包含大量元素。现在我想比较两者中的每个元素,如果我只是像通常那样:使用两个嵌套的for循环来完成这项工作,那将非常耗时。是否有更快的解决方法来实现相同的目的?谢谢!

1 个答案:

答案 0 :(得分:1)

诀窍是加速查找,比如使用哈希。

根据具体情况,可以使用以下一些变体:

my %array1;
++$array1{$_} for @array1;
for (@array1) {
   say "$_ isn't in \@array1"
      if !$array1{$_};
}

如果可能重复:

my %array1;
++$array1{$_} for @array1;
my %array2;
for (@array1) {
   say "$_ isn't in \@array1"
      if ++$array2{$_} > ($array1{$_} // 0);
}