ArraySort | サンプルソース | |
---|---|---|
Javaの便利なパッケージjava.utilからArraysを紹介。文字コード順に配列を並べ替えます。 |
ArraySort.java |
/** * 愛のJava256本ノック for Java 5.0 * Javaサンプルソース ver0.2C "ArraySort" * ArraySort.java 「Arraysで配列をソート」 * * 2005/09/23 制作:安永ノリカズ * * 【コンパイル&実行方法】 * >javac ArraySort.java * >java ArraySort * 【キーワード】 * 並び替え(sort), 自然順序付け(natural ordering), 昇順(ascending order), * Comparable(比較可能)インタフェース, 配列(array)の長さ(length) * 【試してみよう】 * String型以外の配列をソートしてみる。 * java.util.Comparatorを実装したクラスを作り、降順に並べ替える。 */ import java.lang.String; import java.lang.System; import java.util.Arrays; public class ArraySort { public static void main(String[] A00) { String[] L00 = { "ウインナー", "アンチョビ", "オニオン", "イカ", "エビ" }; System.out.println("並び替え前"); M00(L00); Arrays.sort(L00); System.out.println("並び替え後"); M00(L00); } public static void M00(String[] A00) { for (int L00 = 0; L00 < A00.length; L00++) { System.out.printf("%d番目:%s%n", L00 + 1, A00[L00]); } } } /* ■ クラスの外でちょっと一言 ■ 文字列を並べ替えた場合、文字コードの昇順(小さい順)に並びます。この順序を 決定付けているのは、Stringクラスが実装しているjava.lang.Comparableイン ターフェースのcompareToメソッドです。一度APIドキュメントで確認しておいて ください。 初めて見るクラスやメソッドに出会ったら、とりあえずAPIドキュメントで調べ る癖をつけておくと、いいですよ。最初はチンプンカンプンかもしれませんが、 これも一つのトレーニングと心得て、面倒くさがらないようお願いします。 ここに出てきたforループは、配列を全部表示するための基本パターン。J2SE5.0 からは拡張forループを使って配列を全て走査することが可能になりましたが、 何番目の要素かを表示するために、あえて基本パターンを使ってます。 Arrays.sort()メソッドは、引数によって使用するアルゴリズムが違うみたい で、int,doubleなどの基本型配列の場合はクイックソート、StringやIntegerの ような参照型配列の場合はマージソートが使われるそうです。興味のある方は調 べてみてください。 ちなみに、皆さんはピザのトッピングは何が好きですか? 僕がこの中から選ぶ とすれば、アンチョビ&オニオンあたりかな……なんだかピザを食べたくなって きたぞ。 */