library set

[edit]

要約

集合を表す Set クラスを提供します。

集合とは重複のないオブジェクトの集まりです。 Array の持つ演算機能と Hash の高速な検索機能を合わせ持ちます。

Set は内部記憶として Hash を使うため、集合要素の等価性は Object#eql?Object#hash を用いて判断されます。したがって、集合の各要素には、これらのメソッドが適切に定義されている必要があります。

Set クラスでは、集合要素を取り出す際の順序は保証されません。

また、set ライブラリを require すると Enumerable モジュールが拡張され、Enumerable#to_set の形で集合オブジェクトを生成できるようになります。

注意事項

集合オブジェクトに対する freeze メソッドの効果は、内部記憶として保持するハッシュにも適用されます。


require 'set'

set1 = Set.new ["foo", "bar", "baz", "foo"]

p set1                  # => #<Set: {"foo", "bar", "baz"}>
p set1.include?("bar")  # => true

set1.add("heh")
set1.delete("foo")
p set1                  # => #<Set: {"bar", "baz", "heh"}>

クラス

Set

集合を表すクラスです。要素の間に順序関係はありません。

追加・再定義されるメソッド

Enumerable#to_set