Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > setライブラリ
集合を表す Set クラスと、取り出し順序を保証した SortedSet クラスを提供 します。
集合とは重複のないオブジェクトの集まりです。 Array の持つ演算機能と Hash の高速な検索機能を合わせ持ちます。
Set および SortedSet は内部記憶として Hash を使うため、集合要素の 等価性は Object#eql? と Object#hash を用いて判断されます。 したがって、集合の各要素には、これらのメソッドが適切に定義されている 必要があります。
Set クラスでは、集合要素を取り出す際の順序は保証されません。 一方、SortedSet では、集合要素はソートされた順序で取り出されます。
また、set ライブラリを require すると Enumerable モジュールが 拡張され、Enumerable#to_set の形で集合オブジェクトを生成できる ようになります。
Ruby 1.8 では、集合オブジェクトに対する taint, untaint, freeze の各 メソッドは、内部記憶として保持するハッシュには影響しません。 このため、集合オブジェクトの凍結および汚染マークのセットは実質的な 効果を持ちません。 例えば、set.freeze に続いて set.add を呼び出しても、エラーは発生 しません。
require 'set' set1 = Set.new ["foo", "bar", "baz", "foo"] p set1 #=> #<Set: {"baz", "foo", "bar"}> p set1.include?("bar") #=> true set1.add("heh") set1.delete("foo") p set1 #=> #<Set: {"heh", "baz", "bar"}>
Set | 集合を表すクラスです。要素の間に順序関係はありません。 |
SortedSet | 各要素をソートされた形で扱う集合クラスです。 |