カテゴリ: Ruby 更新日: 2026/01/06

Ruby配列の比較と差分を完全ガイド!初心者でもわかる==・<=>・-・&の使い方

配列の比較・差分:==・<=>・-(差集合)・&(積集合)
配列の比較・差分:==・<=>・-(差集合)・&(積集合)

先生と生徒の会話形式で理解しよう

生徒

「Rubyの配列って、同じかどうか比べたり、違いを調べたりできるんですか?」

先生

「できますよ。Rubyの配列には、比較や差分を調べるための便利な記号や仕組みがあります。」

生徒

「記号って難しそうですが、初心者でも大丈夫ですか?」

先生

「大丈夫です。身近な例えを使いながら、一つずつゆっくり説明します。」

1. 配列の比較とは何をすること?

1. 配列の比較とは何をすること?
1. 配列の比較とは何をすること?

Rubyの配列(Array)の比較とは、「この配列とあの配列は同じ内容か」「どちらが先に並ぶか」 「共通している要素は何か」「違う部分はどこか」を調べることです。 たとえば、買い物メモを二つ持っていて、「内容が同じか」「片方にしかない商品は何か」を確認する場面を想像してください。 プログラムでも同じように、配列の中身を比べる処理がよく登場します。

Rubyでは、==<=>-&といった記号を使うことで、 配列の比較や差分を簡単に書くことができます。

2. == で配列が同じかどうかを比べる

2. == で配列が同じかどうかを比べる
2. == で配列が同じかどうかを比べる

==は「イコールが二つ並んだ記号」で、「内容が同じかどうか」を調べます。 Rubyの配列では、要素の順番と中身がすべて同じ場合にだけ、同じと判断されます。

これは、同じ順番で並んだ名簿を二つ見比べて、「名前も順番も全部同じか」を確認するイメージです。


a = [1, 2, 3]
b = [1, 2, 3]
c = [3, 2, 1]

puts a == b
puts a == c

true
false

このように、同じ数字が入っていても順番が違うとfalseになります。 ここでのtruefalseは、「正しい」「正しくない」を表すRubyの値です。

3. <=> で配列の順序を比較する

3. <=> で配列の順序を比較する
3. <=> で配列の順序を比較する

<=>宇宙船演算子と呼ばれ、「どちらが先か」を比べるための記号です。 名前は少し変わっていますが、やっていることは単純です。

左の配列が小さいと-1、同じなら0、右の配列が小さいと1を返します。 辞書で単語を比べるように、先頭から順番に中身を見て判断します。


[1, 2, 3] <=> [1, 2, 4]
[1, 2, 3] <=> [1, 2, 3]
[2, 1]    <=> [1, 9]

-1
0
1

数字が小さいほうが「前」と判断されます。 並び替えや順番を決める処理の内部で、この仕組みがよく使われています。

4. -(差集合)で違う要素を取り出す

4. -(差集合)で違う要素を取り出す
4. -(差集合)で違う要素を取り出す

-差集合と呼ばれ、「左の配列にあって、右の配列にないもの」を取り出します。 これは、二つの買い物メモを比べて「自分のメモにだけ書いてある商品」を探すイメージです。


a = [1, 2, 3, 4]
b = [3, 4, 5]

p a - b

[1, 2]

重複している34は消え、違うものだけが残ります。 配列の差分を知りたいときにとても便利です。

5. &(積集合)で共通の要素を取り出す

5. &(積集合)で共通の要素を取り出す
5. &(積集合)で共通の要素を取り出す

&積集合と呼ばれ、「両方の配列に共通して入っている要素」を集めます。 共通点だけを抜き出すイメージです。


a = [1, 2, 3, 4]
b = [3, 4, 5]

p a & b

[3, 4]

両方に入っている数字だけが結果になります。 データの共通部分を調べたい場面でよく使われます。

6. 配列比較と差分を使うと何ができる?

6. 配列比較と差分を使うと何ができる?
6. 配列比較と差分を使うと何ができる?

Rubyの配列比較や差分の考え方を知っておくと、 データの確認、変更点のチェック、重複の発見などが簡単に書けるようになります。 プログラムが長くなっても、短く読みやすいコードを書けるのがRubyの強みです。

最初は記号が多くて戸惑うかもしれませんが、 「同じか」「順番はどうか」「違いは何か」「共通点は何か」 という視点で見ると、どれも身近な考え方だと気づけます。

関連記事:
カテゴリの一覧へ
新着記事
New1
Ruby
Rubyの文字エンコーディング入門!UTF-8・マジックコメント・外部/内部エンコーディングを完全解説
New2
Rails
Rails GoodJob入門!PostgreSQLベースのバックグラウンド処理を初心者向けに完全解説
New3
Ruby
Rubyで学ぶビット演算入門:&・|・^・~・<<・>>の基礎と実例
New4
Rails
RESTとRailsの関係を徹底解説!resources設計と7つの標準アクションを初心者向けにわかりやすく解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.3
Java&Spring記事人気No3
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.7
Java&Spring記事人気No7
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説