Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

標準ライブラリ「set」で集合を扱う(その4)

まさか、このネタの続きを書く事になるとは思いませんでした……
Ruby標準添付ライブラリのSetは、集合を扱う際に便利な奴です。

これ、実は重複データを取り扱う際に結構有用だったりするそうです。

実際のところ

配列で重複があるデータを取り扱う場合、私であれば

ary = []
#>> []

ary << "uiA, 30, 35"
ary << "uiB, 31, 36"
ary << "uiC, 38, 31"
ary << "uiA, 30, 35" ##重複
ary << "uiA, 30, 33"

p ary
#>> ["uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 35", "uiA, 30, 33"]

p ary.uniq
#>> ["uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 33"]

てな感じでやっていました。
この時、配列のかわりにSetを使ってあげると……そういった余計な事は不要となります

ary = Set.new
#>> []

ary << "uiA, 30, 35"
ary << "uiB, 31, 36"
ary << "uiC, 38, 31"
ary << "uiA, 30, 35" ##重複
ary << "uiA, 30, 33"

p ary
#>> #<Set: {"uiA, 30, 35", "uiB, 31, 36", "uiC, 38, 31", "uiA, 30, 33"}>

こんな感じに、空のセットクラスにガンガン放り込むだけで重複は消し去ってくれます。
一々Array.uniqとかやらないでいいんですよ(白目