From: rpmohn@... (Ross Mohn) Date: 2000-11-30T07:10:04+09:00 Subject: [ruby-talk:6652] RE: Array Intersect (&) question aleksi.niemela@cinnober.com (Aleksi Niemel) wrote in : >$ perldoc -q intersection >=head1 Found in /usr/lib/perl5/5.00503/pod/perlfaq4.pod > >=head2 How do I compute the difference of two arrays? How do I compute >the inte >rsection of two arrays? > >Use a hash. Here's code to do both and more. It assumes that >each element is unique in a given array: > > @union = @intersection = @difference = (); > %count = (); > foreach $element (@array1, @array2) { $count{$element}++ } > foreach $element (keys %count) { > push @union, $element; > push @{ $count{$element} > 1 ? \@intersection : \@difference }, >$element >; > } Wow! Much faster than the standard Ruby Array#&. Thanks much (I'll check there myself for these sorts of questions from now on). -RPM -- Ross Mohn rpmohn@panix.com