【Java】配列の要素を昇順、降順に並びかえる!
テーマ
配列の要素を昇順、降順に並びかえるArrays.sortメソッドの使い方を 記載します。
目次
- 昇順に並べる
- 降順に並べる
- Arrays.sortメソッド詳細
- reverseOrderメソッド詳細
- int型を扱う際の注意点
- まとめ
昇順に並べる
Arrays.sortを使って、昇順に並べる。 文字列の配列をアルファベット順に並べています。
package test; import java.util.Arrays; public class Test{ public static void main(String[] args) { String[] array ={"D","B","A","C","E"}; Arrays.sort(array); for(String i: array) { System.out.println(i); } } } // 出力 A B C D E
降順に並べる
続いて降順に並べます。Arrays.sortはデフォルトでは昇順に並びますので
CollectionsクラスのreverseOrderメソッドを使用します。
詳しい使い方は後述します。
package test; import java.util.Arrays; import java.util.Collections; public class Test{ public static void main(String[] args) { String[] array ={"D","B","A","C","E"}; Arrays.sort(array,Collections.reverseOrder()); for(String i: array) { System.out.println(i); } } } // 出力 E D C B A
Arrays.sortメソッド詳細
Arrays.sortメソッドと降順時に使用したreverseOrderメソッドについて 確認します。
まずArrays.sortについてです。前述したコードの通りですが
引数に並びかえる配列を代入すればOKです。
例では文字列のString型にしましたが、int型の数値でも動作します。
※java.utilのCollectionsクラスをインポートすることも忘れずに
import java.util.Collections Arrays.sort(並びかえる配列)
しかし説明した通り、Arrays.sortだとデフォルトで昇順に並び変えられる ため、降順に並びかえる際は追加のメソッドが必要です。
そこで出てくるのが後述するreverseOrderメソッドです。
reverseOrderメソッド詳細
使用方法は簡単でArrays.sortメソッドの第2引数にメソッドを追加します。
Arrays.sort(並びかえる配列,Collections.reverseOrder())
Collections (Java Platform SE 6)
int型を扱う際の注意点
実はint型の配列に対してreverseOrderメソッドを使用しようとすると 以下のコンパイルエラーが表示されます。
型 Arrays のメソッド sort(int[]) は引数 (int[], Collections.reverseOrder()) に適用できません
前述した参考URLも文字列を例にとっている ことからそもそも文字列に対してしか適用できないようです。 と思っていたのですが、どうやら配列をInteger型にすれば適用可能です。
package test; import java.util.Arrays; import java.util.Collections; public class Test{ public static void main(String[] args) { Integer[] array ={3,2,1,5,4}; Arrays.sort(array,Collections.reverseOrder()); for(int i: array) { System.out.println(i); } } } // 出力結果 5 4 3 2 1
なぜ使用できるかは理解不足で説明ができないのですが
認識はしておきましょう。
まとめ
配列の要素を昇順、降順に並びかえる方法についてまとめた よく使用する処理なので、理解しておく