Java以外の言語で書かれたプログラムをJavaに移植するとき、Javaの言語体系に含まれていない表現にぶつかることがあります。また、フローチャートや(基本情報試験などで用いられている)疑似言語で表現されたプログラムを、Javaプログラム化したい場合も同様です。その1つが「絶対的な最大値」を表す「HIGH-VALUE」です。
「HIGH-VALUE」は「型や長さを問わずにほかのどの値と比較しても大きいと判断される値」で、ファイルの併合のようなトランザクション処理などで用いられます。
型 | 絶対的な最大値を現す定数 | |
---|---|---|
byte | Byte.MAX_VALUE | |
short | Short.MAX_VALUE | |
int | Iterger.MAX_VALUE | |
long | Long.MAX_VALUE | |
float | Float.MAX_VALUE(正の最大有限値)/Float.PSITIVE_INFINITY(正の無限大) | |
double | Double.MAX_VALUE(正の最大有限値)/Double.POSITIVE_INFINITY(正の無限大) | |
char | Character.MAX_VALUE | |
Javaが提供している「絶対的な最大値を表す定数」 |
上の表に示したとおり、Javaでは基本型ごとに「絶対的な最大値を表す定数」を提供しています。ですから、基本型に当てはまる変数であれば、これらを「HIGH-VALUE」の代わりに使用できます。
しかし、実際には「HIGH-VALUE」が用いられる対象は文字列の場合がほとんどです。残念ながら、Javaにおいて固定文字列を表現するStringクラスには、絶対的な最大値を表す定数は定義されていませんので、自前で定義することになります。また、このとき、文字列の長さも定める必要があります。例えば、文字列長が3であれば、下記のように、文字型の定数「Character.MAX_VALUE」を3つつなぐといいでしょう。
char[] c = { Character.MAX_VALUE, Character.MAX_VALUE, Character.MAX_VALUE }; final String HIGHVALUE = new String(c);
この方法を使って、COBOL言語の作成例や基本情報試験の例題としてよく用いられる「整列済みの2つのファイルのマージ(併合)」をJavaで書くと以下のようになります。
Copyright © ITmedia, Inc. All Rights Reserved.