ラムダ式の勉強をしていたらArrays.sort()という初めて見たコードがあったので勉強したいと思います。
Arrays.sort()とは
Arrays.sort()はjava.util.Arraysのメソッドで、名前の通り配列(Array)を分類する(sort)ことができます。
例えば配列の中身を1から順に並べ替えたりすることができます。昇順(例:1-10)になります。
構文
Arrays.sort(配列)
Arrays.sort()を使ってみよう
Arrays.sort()を使って配列の中身を並べ替えてみましょう。
数値を並べ替え(昇順)サンプルコード
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] array = {2, 4, 3, 5, 1}; // 配列を作成
Arrays.sort(array); //並び替え
for(int i : array){
System.out.print(i); // 配列の中身を表示
}
}
}
実行結果
12345
数字を小さいほうから順に簡単に並べ替えることができました。
ひらがなを並べ替え(昇順)サンプルコード
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] array = {“い”, “え”, “あ”, “お”, “う”}; // 配列を作成
Arrays.sort(array); //並び替え
for(String str : array){
System.out.print(str); // 配列の中身を表示
}
}
}
実行結果
あいうえお
日本語は並べ替えできないかと思いきや、対応していました。
名前をあいうえお順などに並べ替えできて便利そうですね。
降順について
降順(例:10-1)にしたいこともあるかと思います。
そんな時はCollectionsクラス(java.util.Collections)と併用することで簡単に降順にすることができます。
ただし、プリミティブ型(intなど)ではなくクラス型(String, Integerなど)である必要があります。
構文
Arrays.sort(配列, Collections.reverseOrder());
Arrays.sort()で降順してみよう
せっかくなので降順のサンプルコードも使ってArrays.sort()の理解を深めましょう。
数値を並べ替え(降順)サンプルコード
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] array = {2, 4, 3, 5, 1}; // 配列を作成
Arrays.sort(array, Collections.reverseOrder()); //並び替え
for(int i : array){
System.out.print(i); // 配列の中身を表示
}
}
}
実行結果
54321
ひらがなを並べ替え(降順)
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
String[] array = {“い”, “え”, “あ”, “お”, “う”}; // 配列を作成
Arrays.sort(array, Collections.reverseOrder()); //並び替え
for(String str : array){
System.out.print(str); // 配列の中身を表示
}
}
}
実行結果
おえういあ
おまけ ラムダ式で昇順・降順
Arrays.sort()はラムダ式を使ったメソッドが準備されているので使ってみます。
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Integer[] array = {2, 4, 3, 5, 1}; // 配列を作成
Arrays.sort(array, (a, b) -> a – b);
for(int i : array){
System.out.print(i); // 配列の中身を表示
}
}
}
実行結果
12345
「 a – b 」の箇所を「 b – a 」に書き換えると降順になります。まだ仕組みはわかってないけどラムダ式ってすごいですね。
ラムダ式については以下記事を参考にしてみていただければと思います。
おわり
array.sort()で簡単に並び順をきれいにできてしまうんですね。便利。
ラムダ式がよくわかってなくてもなんとか使えるし活用してみたいところです。