【Java】配列の要素をソート(並べ替え)する
目次
Javaで配列の要素を並べ換える方法をメモ。
並べ替えにはjava.utilパッケージ、Arraysクラスのsortメソッドを使用する。
Arraysクラスにはソートや検索など、配列を操作するためのメソッドがあらかじめ用意されている。
こちらの記事では配列に格納した全要素をコンソールに表示するプログラムで並べ替えの結果を比較する。
文字列(String)型配列の要素を並べ換える(A – Z)
通常の並び
要素は通常、配列に格納した順に出力される。
public static void main(String[] args) { String[] members = new String[]{"Dave", "Zack", "Andy", "Beck"}; for(String member : members) { System.out.println(member); } } }
実行結果(コンソールに出力):
Dave
Zack
Andy
Beck
要素を並べ換える
Arraysクラスのsortメソッドの引数に変数membersを渡して実行する。
import java.util.Arrays; public class Main { public static void main(String[] args) { String[] members = new String[]{"Dave", "Zack", "Andy", "Beck"}; Arrays.sort(members); for(String member : members) { System.out.println(member); } } }
配列に格納した各要素がアルファベット順に並べ変わる。(A to Z)
実行結果(コンソールに出力):
Andy
Beck
Dave
Zack
逆向き(Z to A)に並べ替える
逆向きに並べ替えたい場合は、
Arrays.sortメソッドの二つ目の引数にCollectionsクラスのreverseOrder()メソッドを渡す。
Arrays.sort(members, Collections.reverseOrder());
実行結果(コンソールに出力):
Zack
Dave
Beck
Andy
数値型(Integer)型配列の要素を並べ換える
通常の並び
文字列型と同様、通常は配列に格納した順に出力される。
public class Main { public static void main(String[] args) { Integer[] numbers = new Integer[]{5, 1, 3, 7, 6, 2, 4}; for(Integer number : numbers) { System.out.print(number + " "); } } }
実行結果(コンソールに出力):
5 1 3 7 6 2 4
要素を並べ換える
Arraysクラスのsortメソッドの引数に変数numbersを渡して実行する。
public class Main { public static void main(String[] args) { Integer[] numbers = new Integer[]{5, 1, 3, 7, 6, 2, 4}; Arrays.sort(numbers); for(Integer number : numbers) { System.out.print(number + " "); } } }
数値の要素が昇順で並ぶ。
実行結果(コンソールに出力):
1 2 3 4 5 6 7
降順に並べ替える
逆向き(数値の降順)に並べ替えたい場合、
こちらも文字列型で行った時と同様Arrays.sortメソッドの二つ目の引数に
CollectionsクラスのreverseOrder()メソッドを渡す。
Arrays.sort(numbers, Collections.reverseOrder());
実行結果(コンソールに出力):
7 6 5 4 3 2 1