Forum: Ruby In Ruby, is a set just a hash without values?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Wes G. (Guest)
on 2006-03-29 04:21
A question - is there an object in Ruby analogous to a Java set, which
has hash-like functionality but no values?

Or should I just use a hash with no values?

Actually, what I'm _really_ trying to do is "unique-ize" an array based
on a particular attribute of each of it's members.  My plan was to read
the unique attribute values into a hash as they come up and compare new
array member's attributes against that hash.

I bet there's a very cool way to do it ;) - if anyone knows and would
like to share, I am all ears.

Thanks,
Wes
Stephen W. (Guest)
on 2006-03-29 04:25
(Received via mailing list)
Wes G. wrote:
> A question - is there an object in Ruby analogous to a Java set, which
> has hash-like functionality but no values?

require 'set'  # should do what you're asking for

docs here: http://ruby-doc.org/stdlib/libdoc/set/rdoc/index.html

--Steve
Daniel H. (Guest)
on 2006-03-29 04:34
(Received via mailing list)
On Mar 29, 2006, at 2:21 AM, Wes G. wrote:

> Actually, what I'm _really_ trying to do is "unique-ize" an array
> based
> on a particular attribute of each of it's members.  My plan was to
> read
> the unique attribute values into a hash as they come up and compare
> new
> array member's attributes against that hash.
>
> I bet there's a very cool way to do it ;) - if anyone knows and would
> like to share, I am all ears.

Use the Set class (or SortedSet if your collection needs to be sorted
and mixes in Comparable).

$ ri Set
<snip>
The equality of each couple of elements is determined according to
Object#eql? and Object#hash, since Set uses Hash as storage.

-- Daniel
This topic is locked and can not be replied to.