>>この記事には書き直した新しいページがあります。<<
<<前 [TOP] 次>>
メモ帳を開いて次のプログラムを作ってみましょう。
【Sort7.java】
import java.util.*; public class Sort7 { public static void main( String[] args ) { int num = 10000; int max = 10000000; char[] flags = { 's', 'b', 'q', 'm', 'j' }; for( int i=0; i<flags.length; i++ ) { int[] array = makeRandomInteger ( num,max ); Calendar cal = Calendar.getInstance(); System.err.print( flags[i] + ":" ); System.err.print( "Start:" + cal.get( Calendar.MINUTE ) + ":" + cal.get( Calendar.SECOND ) + ":" + cal.get ( Calendar.MILLISECOND ) ); sort( array,flags[i] ); cal = Calendar.getInstance(); System.err.println( " Finish:" + cal.get( Calendar.MINUTE ) + ":" + cal.get( Calendar.SECOND ) + ":" + cal.get( Calendar.MILLISECOND )); } } public static void sort( int[] array, char c ){ switch( c ) { case 's': Sort3.sort( array ); break; case 'b': Sort4.sort( array ); break; case 'q': Sort5.sort( array ); break; case 'm': Sort6.sort( array ); break; case 'j': java.util.Arrays.sort( array ); break; default : } } public static int[] makeRandomInteger( int num, int max ){ int[] array = new int[num]; for( int i=0; i<num; i++ ) { array[i] = (int)( max * Math.random() ); } return array; } }
このプログラムでは、最初に「import java.util.*;」と書いて、javaのパッケージの使用を宣言しています。
何を使っているかというと、「case 'j': java.util.Arrays.sort( array );」の行でjavaにもともと入っている並び替えのプログラムを使用しています。
このことについては後で詳しく説明しますので、今はまだ解らなくても良いです。
もう一つ、実行したときの分、秒、ミリ秒を取得するのにCalendar.getInstance();というjavaのパッケージを使用しています。
これも、今は詳しく解らなくても良いです。
分、秒、ミリ秒を取得しているんだなくらいに思っておいてください。
ここで覚えてほしいのは、この分、秒、ミリ秒をSystem.err.printで出力していることです。
これを、標準エラー出力といいます。
これに対して、今までのSystem.out.printを標準出力といいます。
標準出力はプログラムで実行された結果を出力していました。
標準エラー出力はそれと違い、エラーメッセージとして表示しています。
これは、あくまでもメッセージなので、結果の出力とは異なります。
プログラムの実行中に、メッセージを表示していきます。
もっと大規模なプログラムになるとこのエラー出力が重要になってきます。
エラーが起きそうな場所にエラー出力が表示されるようにしておいて、エラーが起こったときに素早く対応できるようにします。
もう一つ覚えておいてほしいことは、他のクラスのメソッドの呼び出し方法です。
他のクラスのメソッドを呼び出すには次のように記述します。
クラス名.メソッド名(引数);
この際、呼び出されるクラスはコンパイルされている必要があります。
最後に、makeRandomIntegerメソッドについて少し説明します。
このメソッドでは、numの数だけ配列がランダムに作られます。
max未満の整数が配列に入ります。
配列に代入するときに、(int)でint型にキャストされています。
出力結果を見てみましょう。
<<前 [TOP] 次>>