Sean O'Halpin wrote:
> On 10/28/07, Mohit Sindhwani <mo_mail / onghu.com> wrote:
>   
>> Thanks Sean!  Makes me feel quite nice about it.
>>
>> So, hashes are faster than arrays?
>>
>> Cheers,
>> Mohit.
>> 10/29/2007 | 2:13 AM.
>>     
>
> It depends what you're doing with them and how big they are. But in
> this instance, I changed your solution to use a hash because you were
> appending the duplicates to an array which resulted in adding an entry
> to that array every time you detected a duplicate. This didn't show up
> in your example because your data contained at most two instances of
> an item. If you change your example to:
>
> array = ["apple", "banana", "apple", "orange", "fat", "cow", "cow",
> "apple", "apple"]
> h = Hash.new
> duplicates = []
>
> array.each {|item|
>    if h.has_key?(item) then
>        duplicates << item
>    else
>        h[item] = 0 #it doesn't matter what we store
>    end
> }
>
> puts duplicates
>
> it outputs
>
> apple
> cow
> apple
> apple
>
> which is probably not what you want.
>
> Regards,
> Sean
>
>   
Thanks for the explanation, Sean.  Actually, I guess it's not clear if 
the OP wants to know each occurrence of the duplicates or just the list 
of duplicates.  But, there are now solutions for both cases!

Cheers,
Mohit.
10/29/2007 | 11:44 AM.