常識なのかもしれないけど、ちょっとだけはまったので、メモ。 Array#uniq は配列から重複した要素を取り除いた新しい配列を返すメソッド。 ["hoge", "fuga", "piyo", "piyo", "hoge", "fuge"].uniq #=> ["hoge", "fuga", "piyo", "fuge"] ただし、自前で定義したクラスのオブジェクトについては、そのままじゃうまく動いてくれない。 class Vector2D attr_reader :x, :y def initialize(x, y) @x, @y = x, y end def inspect "#<#{@x}, #{@y}>" end end ary = [[3, 4], [4, 3], [1, 2], [3, 4], [1, 2]].map{|x, y| Vector2D.new(x, y)} #=>