1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

「数億規模スタートアップのCTO講師」と「エンジニアキャリア専門のポテパン」が贈る、実践型Rubyスクール。

【Java入門】配列のソート

Pocket

Javaで配列やリストを扱っていると、その要素をソートしたくなることがあります。C言語など他の言語ではソートアルゴリズムを自分で実装する必要がありますが、Javaでは配列やリストを簡単にソートするためのメソッドが用意されており、それらを呼び出すだけで簡単にソートすることができます。

配列をソートする

Arrays.sort()でソートする

Javaの配列をソートする方法はいくつかありますが、最も単純な方法はArrasyクラスのsort()を使う方法です。Arraysクラスのsort()の使い方は以下の通りです。

sortはArraysクラスのメソッドなので、java.util.Arraysを必ずインポートするようにしましょう。sort()の引数に配列を渡すだけで、簡単にソートすることができます。ただし、元の配列にソート後の配列を上書きする形になるので、ソート前の配列も残しておきたい場合は別の配列にコピーするなどしておきましょう。

実行結果

ソート前:5 3 8 11 2 1
ソート後:1 2 3 5 8 11

Arrays.sort()を利用することで、配列がソートされているのが分かります。Arrays.sort()ではintやdoubleといったプリミティブ型は昇順にしかソートされないので、降順にしたい場合は昇順したソートを逆順にするなどの手順が必要です。

また、Arrays.sort()ではソートする範囲を指定することもできます。リストの一部だけをソートしたい時などに便利ですね。

実行結果

ソート前:5 3 8 11 2 1
ソート後:3 5 8 11 2 1

リストをソートする

Collections.sort()でソートする

配列と同様に、リストもソートをすることができます。リストをソートするにはCollectionsクラスのsort()を使います。Collections.sort()の基本的な構文は以下の通りです。

Collections.srot()もArrays.sort()と同じような使い方になります。また、Collections.sort()も元のリストの中身が書き換えられてしまうので注意が必要です。

実行結果

ソート前:[2, 8, 1, 16, 5]
ソート後:[1, 2, 5, 8, 16]

リストのsort()でソートする

Javaのリストをソートする場合は、リストクラスのsortメソッドを使うこともできます。リストクラスのsort()の使い方は以下の通りです。

リストクラスのsort()では引数にComparatorインタフェースを用いてソート順を指定することができます。引数をComparator.naturalOrder()にした場合は昇順、Comparator.reverseOrder()にした場合は降順でソートされます。

実行結果

ソート前:[2, 8, 1, 16, 5]
ソート後:[16, 8, 5, 2, 1]

reverse()で逆順にする

Javaのリストを降順でソートするにComparatorインタフェースを使いましたが、もしComparatorを使わない場合は一度昇順にソートしたあとに逆順にする必要があります。配列を逆順にする場合は大変ですが、リストの場合はCollectionsクラスのreverse()メソッドを使うことで簡単に逆順にすることができます。

reverse()を使えば1行でさっとリストを逆順にすることができます。そのため、リストならsort()で昇順→reverse()で逆順の2ステップでソートを降順にできます。ソートを降順にしたい時以外でも、reverse()はさまざまな場面で役に立つので、覚えておくとよいでしょう。

実行結果

ソート前:[2, 8, 1, 16, 5]
ソート後:[16, 8, 5, 2, 1]

なお、reverse()もsort()と同様に元のリストの中身を書き換えてしまいますので、元のリストも残しておきたい場合は別のリストにコピーなどをするようにしましょう。

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

おすすめスクール

システムアーキテクチュアナレッジ

システムアーキテクチュアナレッジ システムアーキテクチュアナレッジでは、ITスクールとしては珍しく正規雇用かつ現役のエンジニアが講師を務めています。「責任を持ったIT教育」をテーマに、未経験者をプロフェッショナルに育てます。
ページ上部へ戻る