Javaで配列を昇順・降順にソートする方法について記載します。
目次
配列を昇順・降順にソートする方法
Arrays.sort メソッドを使用します。
構文
Arrays.sort
戻り値
void
1. int型の配列をソート
1 2 3 4 5 |
int[] intArray = {5,2,1,4,3}; // 昇順ソート Arrays.sort(intArray); System.out.println( Arrays.toString(intArray) ); // [1, 2, 3, 4, 5] |
2. Integer型の配列をソート
1 2 3 4 5 6 7 8 9 |
Integer[] integerArray = {50,20,10,40,30}; // 昇順ソート Arrays.sort(integerArray); System.out.println( Arrays.toString(integerArray) ); // [10, 20, 30, 40, 50] // 降順ソート Arrays.sort(integerArray, Comparator.reverseOrder()); System.out.println( Arrays.toString(integerArray) ); // [50, 40, 30, 20, 10] |
3. String型の配列をソート
1 2 3 4 5 6 7 |
// 昇順ソート Arrays.sort(strArray); System.out.println( Arrays.toString(strArray) ); // [aaa, b, cc] // 降順ソート Arrays.sort(strArray, Comparator.reverseOrder()); System.out.println( Arrays.toString(strArray) ); // [cc, b, aaa] |
また、独自のソートクラスやラムダ式を使って様々な条件でソートすることができます。
次の例では、文字列長の昇順にソートします。
文字列長の昇順でソート( ラムダ式 )
1 2 3 4 5 |
String[] strArray = {"aaa","b","cc"}; // 文字数の昇順でソート Arrays.sort(strArray, (a,b) -> a.length() - b.length()); // ラムダ式 System.out.println( Arrays.toString(strArray) ); // [b, cc, aaa] |
文字列長の昇順でソート( 独自クラス )
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 文字列長の昇順ソート用クラス class DescSort implements Comparator<String> { @Override public int compare(String s1, String s2) { return s1.length() - s2.length(); } } // 文字数の昇順でソート String[] strArray = {"aaa","b","cc"}; Arrays.sort(strArray, new DescSort()); // 独自クラスを指定 System.out.println( Arrays.toString(strArray) ); // [b, cc, aaa] |