{category}

Ruby - 配列操作

sort

ソート(言語の基礎

意味 配列を並べ替える


sortとは?

sortメソッドは、配列の要素を昇順(小さい順)に並べ替えます。数値や文字列など、比較可能な要素を含む配列に対して使用できます。元の配列は変更せず、新しい並べ替えられた配列を返します。

sortの具体的な使い方

配列を昇順に並べ替える例

numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = numbers.sort

puts "元の配列: #{numbers}"
puts "ソート後の配列: #{sorted_numbers}"

👇出力結果

元の配列: [3, 1, 4, 1, 5, 9, 2]
ソート後の配列: [1, 1, 2, 3, 4, 5, 9]

この例では、乱順の数値配列をsortメソッドで昇順に並べ替えています。元の配列と並べ替え後の配列を比較して出力しています。

文字列配列のソート例

fruits = ['みかん', 'りんご', 'バナナ', 'いちご']
sorted_fruits = fruits.sort

puts "ソート後のフルーツ配列: #{sorted_fruits}"

👇出力結果

ソート後のフルーツ配列: ["いちご", "みかん", "りんご", "バナナ"]

日本語の文字列配列をソートする例です。日本語の文字列は辞書順にソートされます。

ブロックを使用したカスタムソート例

people = [{name: '田中', age: 30}, {name: '佐藤', age: 25}, {name: '鈴木', age: 35}]

sorted_people = people.sort do |a, b|
  a[:age] <=> b[:age]
end

puts "年齢順にソートした人物リスト:"
sorted_people.each { |person| puts "#{person[:name]}: #{person[:age]}歳" }

👇出力結果

年齢順にソートした人物リスト:
佐藤: 25歳
田中: 30歳
鈴木: 35歳

ブロックを使用して、ハッシュの配列を特定のキーでソートする例です。この場合、人物を年齢順にソートしています。

sortに関するよくある質問

Q. sortは元の配列を変更しますか?
A. いいえ、sortメソッドは元の配列を変更せず、新しくソートされた配列を返します。元の配列を変更したい場合はsort!メソッドを使用します。
Q. 数値と文字列が混在する配列はソートできますか?
A. 基本的には可能ですが、Ruby 2.4以降では警告が出ます。異なる型の比較は予期せぬ結果を招く可能性があるため、注意が必要です。
Q. 降順にソートするにはどうすればいいですか?
A. sort.reverseまたはsort { |a, b| b <=> a }を使用することで、降順にソートできます。

sortが学べる書籍の紹介

「プログラミング単語帳」を使って、プログラミングの単語を英単語のように学習してみませんか?
プログラミング単語帳には、Rubyのsortやabs、def、==、などのような実務でよく使われる単語が数百以上収録されています。
この書籍には、プログラミングの単語の意味や読み方、単語の使い方がわかる例文などが掲載されており、いつでもどこでもプログラミングの学習ができます。

よく使われる単語にだけ絞って学習することができるので、効率的にプログラミングが学習できます。

1日5分の暗記でプログラミンが身に付く!プログラミング単語帳 公式ストアで発売中!

HTML編、CSS編、JavaScript編、PHP編、Ruby編、その他単語編の6シリーズ分が公式ストアにて販売中です。気になった方はぜひ購入してみてください。


Rubyを学べる「プログラミング単語帳」アプリ

プログラミング単語帳がアプリになりました!Rubyはもちろん、10種類のプログラミング言語の中から、よく使われる単語をスマホで学習できます。

収録単語は2,000単語以上!
現在は、HTML、CSS、JavaScirpt、PHP、Laravel、Ruby、Python、MySQL、Linux、など10カテゴリーの単語帳が1つのアプリに収録されています。

いつでも、どこでも、隙間時間を有効活用して、プログラミングを効率的に学べるので、ぜひダウンロードしてみてください。

2024年7月アップデート情報:「Laravel」カテゴリーが追加されましました!

2024年8月アップデート情報:「MySQL」「Linux」カテゴリーが追加されましました!


関連するそのほかの単語

abs

数値の絶対値を取得する

種類: 数値操作

def

メソッドの定義を開始

種類: メソッド定義と呼び出し

==

等値比較演算子

種類: 演算子

module

メソッドや定数をまとめる

種類: モジュール

Queue

先入れ先出しのデータ構造

種類: ミューテックスと同期プリミティブ