2つの配列に共通する要素を持つ新しい配列を取得する(intersection)

配列と配列に共通する要素を持つ新しい配列を作成して取得することができます。ここでは Ruby で2つの配列に共通する要素を持つ新しい配列を取得する方法について解説します。

(Last modified: )

2つの配列に共通する要素を持つ新しい配列を取得する

Array クラスで用意されている & メソッドを使用すると、 2 つの配列に共通する要素を持つ新しい配列を取得することができます。

具体的な例で使い方を確認します。

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
newary = ary1 & ary2

2 つの配列に共通する要素である "C" と "D" の要素を持つ新しい配列 ["C", "D"] を取得します。

なお重複する要素があった場合は取り除かれます。

ary1 = ["A", "C", "D", "C"]
ary2 = ["B", "C", "D", "G", "D"]
newary = ary1 & ary2

"C" と "D" の要素が重複していますが、新しい配列では重複している要素は 1 つだけを含む配列 ["C", "D"] を取得します。

なお Array クラスで用意されている intersection メソッドを使っても同じことが行えます。

intersection(*other_arrays)

引数に別の配列を指定してください。複数指定する場合はカンマ(,)で区切って指定します。引数に指定した配列と共通する要素を持つ新しい配列を返します。

次のように使用します。

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
newary = ary1.intersection(ary2)

2 つの配列に共通する要素である "C" と "D" の要素を持つ新しい配列 ["C", "D"] を取得します。なお重複する要素が含まれていた場合は取り除かれます。

サンプルコード

実際に試してみます。

# encoding: UTF-8

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
p(ary1)
p(ary2)

puts()

newary = ary1.intersection(ary2)
puts("共通する要素を含む配列を取得します")
p(newary)

実行結果は次のようになります。

2つの配列に共通する要素を持つ新しい配列を取得する

-- --

Ruby で2つの配列に共通する要素を持つ新しい配列を取得する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。