【Java】sortでList(リスト)の要素のソート(並び替え)を行う!

リストの要素の並び替え(ソート)を行うにはCollectionsクラスのsortメソッドを使用します。

Collectionsクラスのsortメソッドは、リストの要素を並び替えるメソッドです。

そのため、無作為に並んでいるリストの要素を順番に並び替える際にsortメソッドが使用されます。

また、CollectionsクラスのreverseOrderメソッドを使うことで要素を降順に並び替えることができ、Comparatorクラスを使用することで自分の決めたルールで要素を並び替えることもできます。

Comparatorクラスのsortメソッドを使って以下の場合でリストの要素の並び替え(ソート)を行います。

⚫︎ リストの要素を昇順に並び替える場合
⚫︎ リストの要素を降順に並び替える場合
⚫︎ リストの要素を自分のルールで並び替える場合

sortメソッドとは

Collectionsクラスのsortメソッドとは、リストの要素を並び替えるメソッドになります。

sortメソッドの書き方

Collectionsクラスのsortメソッドの構文は下記となります。

まず、sortメソッドが使用できるように Collectionsクラスをインポートします。

そして、sortにパラメータとしてリストを指定することでリストの要素を「自然順序付け」に従って、指定されたリストを昇順にソートします。

また、sortメソッドの構文は下記の様にも書くこともできます。

第2パラメータとしてコンパレータを指定することでコンパレータが示す順序に従って、指定されたリストをソートします。

sortメソッドの注意点

sortメソッドは戻り値を戻しません。

つまり、引数で渡したリストの中身を書き換えてソートしてしまい、ソート前のリストのバックアップが取れませんので注意してください。

リストの要素の並び替えを行うサンプルコード

リストの要素の並び替えを行うサンプルコードを紹介します。

出力結果

昇順でソートする
・ソート前
[180, 551, 207, 162, 183, 64]

・ソート後
[64, 162, 180, 183, 207, 551]

sortメソッドによってリストの中身が昇順に並び替えられています。

要素を降順に並び替える場合

要素を降順に並び替える場合にはCollectionsクラスのreverseOrderメソッドを使用します。

出力結果

降順でソートする
・ソート前
[180, 551, 207, 162, 183, 64]

・ソート後
[551, 207, 183, 180, 162, 64]

sortメソッドの中にCollectionsクラスのreverseOrderメソッドを指定することでリストの中身が降順に並び替えられています。

要素を自分のルールで並び替える場合

自分のルールで要素を並び替える場合は「Comparator」インタフェースを実装したクラスを用意します。

出力結果

自作のルールでソートする
・ソート前
[180, 551, 207, 162, 183, 64]

・ソート後
[183, 207, 551, 64, 162, 180]

今回のポイント

sortでリストの要素の並び替える

リストの要素をソートするにはCollectionsクラスのsortメソッドを使用する

⚫︎ >Collectionsクラスのsortメソッドでリストの要素をソートする

⚫︎ パラメータとして対象のリストだけを渡すと、自然順序付け(昇順)でソートを行う

⚫︎ 配列の要素を降順に並び替えるに第二パラメータにCollectionsクラスのreverseOrderメソッドを指定する

⚫︎ 自分でソートのルールを決める場合は、「Comparator」インタフェースを実装したクラスを用意する
(サンプルコードでは、奇数だけでソートし、次に偶数だけでソートするルールを作成している)

関連記事

配列の要素をソートする方法ついてはこちらをご参考ください。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し